汇编语言JA JG 指令不都是大于意思JA(CF=0且 ZF=0) JG(SF=0F且 ZF=0)也就是K1的指令不会执行的到。
展开全部
MOV AL, NUM ;AL=19H
CMP AL, NUM + 1 ;19H-98H: ZF=0, CF=1, OF=1; SF=1
JA ... -----CF=0 且 ZF=0,不满足条件,不转移
JG ... -----SF=OF且 ZF=0,满足条件,转移
JA ... -----大于转移,是针对无符号数的
JG ... -----大于转移,是针对有符号数的
如果是无符号数,19H 就小于 89H。
如果是有符号数,19H 就大于 89H。因为 89H 是负数。
CMP AL, NUM + 1 ;19H-98H: ZF=0, CF=1, OF=1; SF=1
JA ... -----CF=0 且 ZF=0,不满足条件,不转移
JG ... -----SF=OF且 ZF=0,满足条件,转移
JA ... -----大于转移,是针对无符号数的
JG ... -----大于转移,是针对有符号数的
如果是无符号数,19H 就小于 89H。
如果是有符号数,19H 就大于 89H。因为 89H 是负数。
更多追问追答
追问
JA不转移,那结果怎么会变成98h,应该98h传不到val吧;JG转移了所以K1的指令执行了,val=19h。
追答
不转移,就接着往下执行:
MOV AL, NIM + 1 --AL = 89H
K1: MOV VAL, AL ---VAL = 89H
----------------------
转移,就直接跳到 K1 去执行:
(MOV AL, NIM + 1 --跳过此行)
K1: MOV VAL, AL ---VAL = 19H
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询