汇编:cmp导致错误后的je / jne

时间:2014-12-03 09:34:37

标签: assembly command prompt 16-bit

所以我正在尝试学习汇编,但我是通过使用WinXP命令提示符和“debug”命令以我认为的16位汇编(100 / 102 / etc是字节索引)(79当然是小写y的ASCII码)

嗯,这是我输入的代码(无法真正复制并粘贴一个点,因为你无法向上滚动)(我正在解释字节索引,所以原谅我)

0ADF:100  jmp 115 ; Execute starting at byte index 115
0ADF:102  db 'Type y or n$', 0D, 0A ; Storing the string "Type y or n"
0ADF:115  mov ah, 09 ; Executing beginning here here, we're printing a string now
0ADF:117  mov dx, 102 ; move the value at index 102 (the stored string) to what we're printing
0ADF:120  int 21 ; do it
0ADF:122  mov ah, 01 ; Action is getting input
0ADF:124  int 21 ; do it
0ADF:126  cmp al, 79 ; comparing the input to hex value 79, a lowercase y
0ADF:128  je 150 ; This is where it says the syntax error is -- jump if equal to index 150, which hasn't been written yet
----------------^Error
0ADF:128

“错误”,当然是我输入时命令提示符打印的内容。 我不知道我做错了什么,有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

没关系,我明白了。完全不是代码的错误(因此显而易见的混淆),它是程序 - 它有一个限制你可以跳到字节索引多远。谢谢,user.1,但是要回答。

答案 1 :(得分:0)

79十进制等于04Fh十六进制,即Ascii首都O

121十进制等于079h十六进制,这是Ascii小写y