首页 > 编程知识 正文

汇编语言stosw,汇编语言rcr

时间:2023-05-05 13:24:08 阅读:51862 作者:4881

汇编语言cmp今天在期末复习中写了一个简单的尺寸比较程序。 然后,在执行了一次cmp命令后,我注意到发生了cmp错误的问题。 代码如下

datasegmentdata0db 9、3、5、7 maxdb0dataendscodesegmentassumecs 3360 code、DS:DATASTART:MOV AX、DATA MOV DS、ax mov al al mmmax AL JA A MOV BL,AL MOV AL,DATA0[2] CMP BL,AL JA B MOV BL,AL MOV AL,DATA0[3] CMP BL,aljacmovmaal DATA[2] CLC CMP BL,al ja mov bl DATA[3] CMP BL,AL JA C MOV MAX,AL JMP OUT1 B:MOV AL,DATA[3] CLC CMP BL,AL JMP OUT1 B:MOV AL,DATA[3] CLC CMP BL, aljmp AL JMP OUT1 C:MOV MAX、BL JMP OUT1 OUT1: MOV DL、MAX ADD DL、30H MOV AH、02H INT 21H CODE ENDS END START在代码执行过程中通过cmp进行比较,得出两个值

然后,查阅书籍,cmp指令在比较时,并不保存减法结果,而只是变更标志寄存器的对应标志位。

cmp命令可映像o、s、z、a、p和c等标志位。 影响cmp命令的判断。 (但是,具体在这里还不太清楚)

因此,如果在程序执行中清除标志位,则程序正常动作,不会影响cmp指令。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。