|
主题 : : 学汇编时遇到的问题,向高手请教一下 [待解决] |
回复[ 1次 ]
点击[ 531次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-11-13 23:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-10 23:37 |
各位高手指点一下,汇编要求是要求键盘输入一个字符串,显示其相应的ASCII码,下面程序总是不对,请帮一下忙 啊!!
DATA SEGMENT
DA1 DB 'put a sring:$'
BUF DB 100
DB ?
DB 100 DUP(?)
DA2 DB 0DH,0AH,'ASCII IS:$'
DATA ENDS
STACK1 SEGMENT STACK
STT DB 100 DUP(?)
STACK1 ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,CS:CODE,SS:STACK1
START: MOV AX,STACK1
MOV SS,AX
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET DA1
MOV AH,09
INT 21H
MOV SI,OFFSET BUF
MOV DX,OFFSET BUF
MOV AH,0AH
INT 21H
INC SI
MOV CX,WORD PTR [SI]
PUSH CX
INC SI
AGN: MOV BL,[SI]
MOV DL,[SI]
MOV CL,4
SHR DL,CL
ADD DL,30H
MOV AH,2
INT 21H
AND BL,0FH
ADD BL,30H
CMP BL,41H
JL SHORE
ADD BL,7
SHORE: MOV DX,OFFSET DA2
MOV AH,09
INT 21H
MOV DL,BL
MOV AH,2
INT 21H
INC SI
POP CX
LOOP AGN
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END START | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-11-14 22:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-10 23:37 |
进过仔细琢磨 应该是: DATA SEGMENT
DA1 DB 'put a sring:$'
BUF DB 100
DB ?
DB 100 DUP(?)
DA2 DB 0DH,0AH,'ASCII IS:$'
DATA ENDS
STACK1 SEGMENT STACK
STT DB 100 DUP(?)
STACK1 ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,CS:CODE,SS:STACK1
START: MOV AX,STACK1
MOV SS,AX
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET DA1
MOV AH,09
INT 21H
MOV SI,OFFSET BUF
MOV DX,OFFSET BUF
MOV AH,0AH
INT 21H
INC SI
MOV CL, [SI]
MOV CH,0
;PUSH CX
INC SI
AGN:
MOV DX,OFFSET DA2
MOV AH,09
INT 21H
MOV BL,[SI]
MOV DL,[SI]
SHR DL,1
SHR DL,1
SHR DL,1
SHR DL,1
ADD DL,30H
MOV AH,2
INT 21H
AND BL,0FH
ADD BL,30H
CMP BL,39H
JL SHORE
ADD BL,7
SHORE:
MOV DL,BL
MOV AH,2
INT 21H
INC SI
;pop cx
LOOP AGN
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END START | | |
|