SUB AL, 30H ; 判断是否小于10或大于300 CMP AL, 10 JL NOT_PRIME_MSG CMP AL, 300 JG NOT_PRIME_MSG为什么报错
时间: 2024-06-02 10:09:14 浏览: 135
sfs.rar_FH DS_The Show_dw_dw vhdl
这段代码报错的原因可能是因为在 CMP AL, 300 这一行之前没有用 MOV 指令将需要比较的数据先存入 AL 寄存器中。也就是说,CMP AL, 300 这条指令是在没有给 AL 赋值的情况下进行比较的,因此会报错。
正确的做法应该是在 CMP AL, 10 这一行之前使用 MOV AL, [需要比较的数据] 将需要比较的数据存入 AL 寄存器中。例如:
MOV AL, num ; 将需要比较的数据存入 AL 寄存器中
SUB AL, 30H ; 判断是否小于10或大于300
CMP AL, 10
JL NOT_PRIME_MSG
CMP AL, 300
JG NOT_PRIME_MSG
其中,num 是需要比较的数据。
阅读全文