主题:一道汇编题,急求解!!!
fanguoli1437
[专家分:0] 发布于 2005-12-21 06:32:00
从键盘输入任意字符,要求在显示器上显示,并显示其ASCII值
回复列表 (共3个回复)
沙发
kaikaikai007 [专家分:650] 发布于 2005-12-21 09:13:00
自己编写~可以参考一下~
KK SEGMENT STACK
DW 32 DUP ()
KK ENDS
DATA SEGMENT
CHAR DB ?
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:KK,ES:DATA
MOV AX,DATA
MOV DX,AX
MOV ES,AX
LOP: MOV AH,0 等待从键盘输入字符
INT 16H
MOV CHAR,AL 将输入的字符保存到al中
CMP CHAR,48
JE EXIT 输入0则退出
CMP CHAR,08H
JE BS 按backspace则删除刚刚输入的字符
MOV AH,9
MOV AL,CHAR 显示输入的字符
MOV BH,0
MOV BL,0EH
MOV CX,1
INT 10H
MOV AH,3 初始化光标位置
MOV BH,0
INT 10H
CMP DL,9 每输入十个字符换行
JNB HH
ADD DL,1 每输入一个字符列数加一
MOV AH,2
MOV BH,0
INT 10H
JMP LOP 重新输入
HH: MOV AH,0EH
MOV AL,0AH
INT 10H
SUB DL,9 重新设置光标位置
MOV AH,2
MOV BH,0
INT 10H
JMP LOP
EXIT: MOV Ax,4C00H
INT 21H
BS: MOV AH,0EH 删除操作
MOV CHAR,08H
INT 10H
MOV AH,3
MOV BH,0
INT 10H
THL: MOV AH,6 清除刚刚输入的字符
MOV AL,0
MOV CH,DH
MOV CL,DL
INT 10H
JMP LOP
MAIN ENDP
CODE ENDS
END MAIN
板凳
okaswell [专家分:100] 发布于 2005-12-21 16:58:00
我也写了一个
data segment
char db ?
buf db 2 dup(?)
data ends
code segment
assume ds:data,cs:code
stt:mov ax,data
mov ds,ax
mov ah,1
int 21h
mov char,al
mov dl,0ah 回车换行
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cl,4 对高位进行处理
mov dl,char
shr dl,cl
and dl,0fh
or dl,30h
mov ah,2
int 21h
mov dl,char 对低位进行处理
and dl,0fh
or dl,30h
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end stt
3 楼
fanguoli1437 [专家分:0] 发布于 2005-12-22 18:30:00
谢谢各位高手的指点,但是老师要求要在150行以上呀,他说以下的不会很准确。由于我是初学者不太清楚,如果短一点也可以的话当然最好。希望各位高手能再帮帮忙呀,小的先谢谢了!
我来回复