来个高手解决这个汇编问题,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:14:59
CMP AL,0DH
JZ INPUT2
CMP AL,'q' ;按q或Q则退出
JZ EXIT
CMP AL,'Q'
JZ EXIT
这段程序运行提示
Relative jump out of range by 002Eh bytes(第一个JZ错误提示)
Relative jump out of range by 002Ah bytes(第二个JZ错误提示)
怎么改?知道得请不吝赐教,谢谢
AH在前面得程序给定

JZ的跳转范围是-128~+127
你写的那个错误提示是提示跳转距离太远的,也就是说你这条JZ指令距离exit这个标号的距离无法用一个字节表示
你可以这样写:
cmp al,'q'
jnz next001 ;如果不是'q'则执行下一个CMP
jmp exit ;如果是'q',跳转到exit,jmp的跳转范围有字节的,字的,还有双字的,范围很大
next001:
cmp al,'Q'
jnz next002
jmp exit
next002:

JZ是正个A为"0"时转移吧 你只给它定低字节数AL,那么AH呢,你没给它定义数值啊,即使是“00H”给它也行啊 可能找不到AH里的内容而提示出错吧

EXIT改成其它的如EEXIT