汇编:编写ASCII码的查询程序

来源:百度知道 编辑:UC知道 时间:2024/05/05 11:15:51
编写ASCII码的查询程序。要且该程序运行后显示提示信息The ASCII code of,待查询者键入欲查字符后再显示is和该字符的ASCII码,换行后又输出提示信息The ASCII code of待查,如此不断循环,直至查询之键入回车符输出is 0DH后结束该程序的运行。
以下是我写的,可是运行不对,请各位帮忙看看。
stack segment stack 'stack'
dw 32 dup(0)
stack ends
data segment
INPUT db 'The ASCII code of $'
OUTPUT db ' is $'
A db 0
data ends
code segment
start proc far
assume ss:stack,cs:code,ds:data
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
AGAIN: MOV DX,OFFSET INPUT
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV AH,0
MOV A,AL
MOV AL,0
MOV AH,9
MOV DX,OFFSET OUTPUT
INT 21H
MOV DH,0
MOV DL,A
ADD DL,30H
MOV AH,2
INT 21H
MOV AH,0
MOV AL,0DH
CMP A,AL
JNE AGAIN
ret
start endp
code ends
end start

data segment
INPUT db 'The ASCII code of $'
OUTPUT db ' is $'
msg db 0dh,0ah,'is 0DH $'
A db 0
data ends
code segment
start proc far
assume cs:code,ds:data
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
AGAIN: MOV DX,OFFSET INPUT
MOV AH,9
INT 21H
MOV AH,1
INT 21H
cmp al,0dh
jz tj
MOV A,AL
MOV AH,9
MOV DX,OFFSET OUTPUT
INT 21H
mov bl,a
mov bh,0
call dispa;以十进制形式显示ASCII码
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
jmp again
tj:
lea dx,msg
mov ah,9
int 21h
mov ah,1
int 21h
ret
start endp
dispa proc near
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov