-128- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
![]() |
助记符:JNS(Jump if Not Signed) 用 途:根据运算结果的符号情况进行转移 格 式:JNS 目的地址 执 行:若标志寄存器"符号位"SF为0,则执行转移 |
||||||||||||||||||||
不用问,和这条指令功能相对的指令必然是"JS"(Jump if Signed)。我们先来领略一下这个演示程序: | |||||||||||||||||||||
code main msg start: change: main code |
segment assume org proc jmp db mov mov int mov mov mov int mov int dec jns int endp ends end |
cs:code,ds:code 100h far short start 'Press any key...',0dh,0ah, ah,09h dx,offset msg 21h ch,0fh cl,0fh ah,1 10h ah,0 16h ch change 20h main |
24h ;输出字符串MSG ;设置光标起始扫描线 ;设置光标终止扫描线 ;利用10H中断的01功能 ;改变光标形状 ;等待键盘输入 ;光标起始扫描线减1 ;转至CHANGE继续改变光标形状 ;结束进程 |
||||||||||||||||||
运行这个程序并连续按键,就可以看到光标形状所发生的变化。现在我们来谈谈指令JS与JNS,这两条指令和SF标志有密切关系,所以我们先来研究SF标志究竟受什么指令影响,这又要请我们的老朋友--DEBUG来帮助: | |||||||||||||||||||||
C:\ASM\>DEBUG [Enter] -a100[Enter] 13CD:0100 mov ax,ffff 13CD:0103 dec ax |
;0FFFFH送入AX寄存器 ;计算0FFFFH-1 |
||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |