当前位置:编程学习 > 汇编语言 >>

汇编语言问题,代码如下,急

STACKS SEGMENT STACK DW 128 DUP(?) STACKS ENDS DATAS SEGMENT ARRAY DW 0001H,0002H,0003H,0004H,0005H,0006H,0007H,0008H,0009H,000AH COUNT DW 1 DUP(?) DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV BX,0 MOV CX,10 MOV DX,7FFFH AGAIN: MOV AX,ARRAY[BX] TEST AX,0001H JNZ COP JMP NEXT COP: CMP AX,DX(这里是想实现比较AX,DX的大小) JL STO(如果AX<DX,执行STO,但是实现不了,所有的都是执行了STO?错在那里)? STO: MOV DX,AX NEXT: INC BX INC BX DEC CX JNZ AGAIN MOV AX,4C00H ;Í˳ö³ÌÐò INT 21H CODES ENDS END START 顺便问以下,这句话错在那里?MOV AX,AX LT DX
追问:非常感谢,实在是刚刚入门,多多指教啊!顺便问以下,这句话错在那里?MOV       AX,AX LT DX
LT的俩边有什么要求,不能是寄存器?是比较大小的操作符,*LT?意思是*小于?
答案:因为AX<DX则跳转到STO,不满足会执行JL STO的下一条指令,还是到STO,你可以在JL STO后,STO:以前加个JMP NEXT
其实最好是直接将JL STO改成JGE NEXT
如果以上还不能解决的话,那就是有正负符号的问题了,有符号数跟无符号数的比较跳转用的指令是不一样的。

上一个:使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试
下一个:汇编语言 dup(<'x','y',6,500>)什么意思啊

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,