汇编中怎样从键盘读数字呢?

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:11:10
rt

mov ah,1
int 21h....这样的?还是怎样的?

我明白你的意思,呵呵,跟我最初学汇编时候是一样的,汇编中没有从键盘读数字和字符的区别,数字和英文字符读进来都是对应的ASCII码
INT 21H的1号调用取来的就是键盘按键的ASCII码,而你要的是数字,就需要做ASCII码到数字的转换了,以十六进制为例,0-F当中,数字减30H,字母减37H,比如按个9送到AL的值是39H,15也就是F送到AL的值是46H

INT 21H的1号调用取来的就是键盘按键的ASCII码,而你要的是数字,就需要做ASCII码到数字的转换了,以十六进制为例,0-F当中,数字减30H,字母减37H,比如按个9送到AL的值是39H,15也就是F送到AL的值是46H
参考一下代码:
data segment
buff db 10 dup (0)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,offset buff
mov cx,10
op1:
mov ah,00h
int 16h
mov [bx],al
inc bx
loop op1
mov cx,10
mov bx,offset buff
op2:
mov dl,[bx]
mov ah,2h
int 21h
inc bx
loop op2
exit:
mov ax,4c00h
int 21h
code ends
end start

用口令 in 60H

in 是读,60H是键盘端口

读出来的时键盘的扫描码

mov ah,1
int 21h
调用DOS 1号功能,可以接收键盘一个字符,送到AL寄存器,你的是正确的呢