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

新手汇编,其中我想要把输入的数字再弄成字符串输出显示出来 弄了半天 就是出不来 没看出错误。请高手看看

谢谢! 代码: DATA SEGMENT DATA1 DB 10 DUP(?) RESULT DB ? MESS1 DB '请输入任意多个十进制无符号数,用英文逗号间隔,结束输入英文句号:',13,10,'$' MESS2 DB 13,10,'其中奇数的个数为 : $' MESS3 DB 13,10,'输入有误!请按照要求重新输入。$' MESS4 DB 13,10,'您输入了$' MESS5 DB '个数,分别为:$' DATA ENDS STACK SEGMENT STA DB 1024 DUP(?) TOP EQU $-STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV BH,0 MOV BL,0 MOV CX,0 LEA DX,MESS1 MOV AH,9 INT 21H WW1: MOV AH,01H INT 21H PUSH AX INC CX CMP AL,2CH ;判断逗号 JZ DOUHAO CMP AL,2EH ;判断句号 JZ JUHAO CMP AL,30H ;判断数字 JAE SZ JMP WRONG SZ: CMP AL,39H ;判断数字 JBE WW1 JMP WRONG DOUHAO: ADD BL,1 LEA SI,DATA1 POP [SI] POP [SI+1] MOV AL,[SI+1] TEST AL,01H ;判断是否为奇数 PUSH [SI+1] PUSH [SI] JNZ LP1 JMP WW1 LP1: ADD BH,1 JMP WW1 JUHAO: ADD BL,1 LEA SI,DATA1 POP [SI] POP [SI+1] MOV AL,[SI+1] TEST AL,01H ;判断是否为奇数 PUSH [SI+1] PUSH [SI] JNZ LP2 JMP SC LP2: ADD BH,1 JMP SC WRONG: LEA DX,MESS3 MOV AH,9 INT 21H JMP START SC: MOV [RESULT],BH LEA DX,MESS4 MOV AH,9 INT 21H MOV DL,BL OR DL,30H MOV AH,2 INT 21H LEA DX,MESS5 MOV AH,9 INT 21H LEA SI,DATA1 CZ: POP [SI] INC SI DEC CX JCXZ CZ MOV AL,'$' MOV [SI],AL MOV DX,DATA1 MOV AH,9 INT 21H LEA DX,MESS2 MOV AH,9 INT 21H MOV DL,BH OR DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
追问:这里没有问题的。可以判断出去。
不能显示汉字。。那个不重要。。
图中圈出的代码去掉就可以正常运行  但是实现不了显示  输入的字符   这个功能
谢谢帮助恩  是那里错了 但是不止那里错。改过后输出不正确  但是不重要了。  想到了另外一个好办法
谢谢
答案:只看了上面一直在判断出不去 还有能显示汉字吗晕
	CMP  AL,2CH 				;判断逗号
      			JZ   DOUHAO
    	         	CMP  AL,2EH         ;判断句号
    	         	JZ   JUHAO
    	          	CMP  AL,30H         ;判断数字
    	          	JAE  SZ
    	          	JMP  WRONG
    	         SZ:    CMP  AL,39H         ;判断数字
    	         	JBE  WW1
    	         	JMP  WRONG

上一个:求教汇编语言转换成C语言
下一个:在汇编语言中怎样实现两个数互换

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