|
发表于 2009-12-3 13:34:30
|
显示全部楼层
IP:江苏扬州
还是这个程序,我稍微改了一下,能调试出来,
第一个程序在第二程序的基础上加了红色部分,目的是想连续输入几个16进制数,但是在输入第二数时就出现了乱码,请教一下斑竹这是为什么???
一...................
DATAS SEGMENT
DATA1 db 'inputerorr','$' ;此处输入数据段代码 ]
DATA2 DB 16 dup(?),'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DI,DATA2 ;此处输入代码段代码
MOV BL,4
L8:MOV CX,4
L1:MOV AH,01
INT 21H
CMP AL,30H
JA L2
JMP L
L2:CMP AL,39H
JNA L4
CMP AL,41H
JA L3
JMP L
L3:CMP AL,46
JNA L5
L:LEA DX,DATA1
MOV AH,9
INT 21H
JMP L1
L4:SUB AL,30H
JMP L6
L5:SUB AL,37H
L6: SHL AL,CL
L7: SHL AL,1
MOV BL,00H
RCL BL,1
ADC BL,30H
MOV [DI],BL
INC DI
LOOP L7
DEC BL
JNZ L8
MOV DL,0AH
MOV AH,2
INT 21H
LEA DX,DATA2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
二..................
DATAS SEGMENT
DATA1 db 'inputerorr','$' ;此处输入数据段代码 ]
DATA2 DB 16 dup(?),'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DI,DATA2 ;此处输入代码段代码
MOV CX,4
L1:MOV AH,01
INT 21H
CMP AL,30H
JA L2
JMP L
L2:CMP AL,39H
JNA L4
CMP AL,41H
JA L3
JMP L
L3:CMP AL,46
JNA L5
L:LEA DX,DATA1
MOV AH,9
INT 21H
JMP L1
L4:SUB AL,30H
JMP L6
L5:SUB AL,37H
L6: SHL AL,CL
L7: SHL AL,1
MOV BL,00H
RCL BL,1
ADC BL,30H
MOV [DI],BL
INC DI
LOOP L7
MOV DL,0AH
MOV AH,2
INT 21H
LEA DX,DATA2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START |
|