键盘输入一个字符或数字,将起ASⅡ码显示出来汇编?

czh456 2007-06-04 07:01:43
请大家帮帮忙啊,谢谢啊,介绍到什么地方能找到也行呀,谢谢了
最后从什么口输出注明一下啊
...全文
799 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
guobin125 2007-11-04
  • 打赏
  • 举报
回复
yunzhe的是对代码段来说是完整的,加上其他段可以运行
guobin125 2007-11-04
  • 打赏
  • 举报
回复
最后一片的问题,运行不了
紫郢剑侠 2007-06-09
  • 打赏
  • 举报
回复
http://blog.csdn.net/Purpleendurer/archive/2005/04/30/369605.aspx

注意这个程序用的是.com格式

显示按下的键的编码的汇编源代码
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;Filename: KeyCode.asm
;Function: Display the code of key that you pessed
;Author : Purple Endurer
;
;Date Log
;-----------------------------------
;02-05-2003 Created!
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

codeseg segment
;===================================
assume cs: codeseg, ds:codeseg
org 100h
;-----------------------------------
@main proc near
mov dx, offset strHeader
mov ah, 09h
int 21h

mov ah, 0
int 16h
push ax
mov dl, al
mov cx, 4
shr dl, cl
call showhex

pop dx
push dx
and dl, 0fh
call showhex

mov dx, offset strSpace
mov ah, 09h
int 21h

pop dx
mov dl, dh
push dx
mov cl, 4
shr dl, cl
call showhex

pop dx
and dl, 0fh
call showhex

mov ax,4c00h
int 21h
main endp
;--------------------

showhex proc near
cmp dl, 9
jg @ga
add dl, '0'
jmp @show
@ga:
add dl, 'A'- 0ah
@show:
mov ah, 2
int 21h
ret
showhex endp

;----------------------
strHeader db "ASCII ScanCode", 0dh, 0ah, '$'
strSpace db 8 dup (' '), '$'
;======================
codeseg ends
end @main





Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=369605
czh456 2007-06-07
  • 打赏
  • 举报
回复
谢谢阿,谢谢大虾的指点啊,刚学不懂啊^呵呵
javaors 2007-06-06
  • 打赏
  • 举报
回复
上面的代码完整,只是要不那些注释稍微改一下就好了,上面的就是将输入的数字或其他字符转化成ASCII码,然后先输出十位的再输出个位的.
czh456 2007-06-06
  • 打赏
  • 举报
回复
请问上面的是完整的程序吗?
我刚学习的,不懂啊……谢谢
yunzhe 2007-06-04
  • 打赏
  • 举报
回复
mov ah,01h;接受字符(AL)=ASCII
int 21h

mov bl,al
;输出十位
mov cl,4
rol bl,cl
mov ah,02h
mov dl,bl
and dl,0fh
add dl,30h
cmp dl,3ah
jl prt
add dl,07h
prt:
int 21h
;输出个位
mov cl,4
rol bl,cl
mov ah,02h
mov dl,bl
and dl,0fh
add dl,30h
cmp dl,3ah
jl prt1
add dl,07h
prt1:
int 21h
paullbm 2007-06-04
  • 打赏
  • 举报
回复
利用int 16h


mov ah,0
int 16h
结果:(ah)=扫描码,(al)=ASCII码

===============
你只要在调用了该中断后,对al里的值进行处理就行!
czlyc006 2007-06-04
  • 打赏
  • 举报
回复
Win32控制台函数读入一个字符或数字,然后mov到寄存器,最后Dump寄存器就可以了吧

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧