用汇编语言,将一个数字的ASCII码值显示出来;ex0421.asminclude io32.inc ;包含32位输入输出文件.data ;数据段msg0 byte '1234';.code ;代码段start:;程序起始位置mov eax,offset msg0 ;EAX指向msg0call dispmsg ;调用I/O子
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/24 17:43:04
![用汇编语言,将一个数字的ASCII码值显示出来;ex0421.asminclude io32.inc ;包含32位输入输出文件.data ;数据段msg0 byte '1234';.code ;代码段start:;程序起始位置mov eax,offset msg0 ;EAX指向msg0call dispmsg ;调用I/O子](/uploads/image/z/4529055-39-5.jpg?t=%E7%94%A8%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80%2C%E5%B0%86%E4%B8%80%E4%B8%AA%E6%95%B0%E5%AD%97%E7%9A%84ASCII%E7%A0%81%E5%80%BC%E6%98%BE%E7%A4%BA%E5%87%BA%E6%9D%A5%3Bex0421.asminclude+io32.inc+%3B%E5%8C%85%E5%90%AB32%E4%BD%8D%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6.data+%3B%E6%95%B0%E6%8D%AE%E6%AE%B5msg0+byte+%271234%27%3B.code+%3B%E4%BB%A3%E7%A0%81%E6%AE%B5start%3A%3B%E7%A8%8B%E5%BA%8F%E8%B5%B7%E5%A7%8B%E4%BD%8D%E7%BD%AEmov+eax%2Coffset+msg0+%3BEAX%E6%8C%87%E5%90%91msg0call+dispmsg+%3B%E8%B0%83%E7%94%A8I%2FO%E5%AD%90)
用汇编语言,将一个数字的ASCII码值显示出来;ex0421.asminclude io32.inc ;包含32位输入输出文件.data ;数据段msg0 byte '1234';.code ;代码段start:;程序起始位置mov eax,offset msg0 ;EAX指向msg0call dispmsg ;调用I/O子
用汇编语言,将一个数字的ASCII码值显示出来
;ex0421.asm
include io32.inc ;包含32位输入输出文件
.data ;数据段
msg0 byte '1234';
.code ;代码段
start:;程序起始位置
mov eax,offset msg0 ;EAX指向msg0
call dispmsg ;调用I/O子程序显示
call dispcrlf ;光标回车换行
disp:;显示输入数字的ASCII码
mov al,06H ;将6(十六进制)赋值给AL
mov bl,al ;将AL的值送到BL中
rol al,4 ;将高4位移往低4位
call htoasc ;调用子程序htoasc查出原高4位的ASCII码
rol al,4 ;将高4位移往低4位
call dispc ;显示第一个字符,即ASCII码的高半字节
mov al,bl ;将BL的值送到AL中
call htoasc ;调用子程序htoasc查出原低4位的ASCII码
call dispc ;显示第二个字符,即ASCII码的低半字节
mov al,'H' ;将“H”存入AL中
call dispc ;显示字符“H”
exit 0 ;程序正常执行结束
htoasc proc ;子程序htoasc,将AL表达的一位十六进制数转换为ASCII码
and al,0fH ;只取AL的低4位
or al,30H ;AL的高4位变成“3”
htoend:ret ;子程序返回
htoasc endp ;子程序结束
end start ;汇编结束
想把06h的ASII码36H显示出来,为什么3总是显示不出来呢?运行结果是06H.百思不得其解啊!
把第一个call htoasc后面那行rol al,4删掉,运行结果还是06H.为什么?
用汇编语言,将一个数字的ASCII码值显示出来;ex0421.asminclude io32.inc ;包含32位输入输出文件.data ;数据段msg0 byte '1234';.code ;代码段start:;程序起始位置mov eax,offset msg0 ;EAX指向msg0call dispmsg ;调用I/O子
想把06h的ASII码36H显示出来,...
-------------------
06h的ASCII码,不是36H.
'6' ,才是 6 的 ASCII 码,这才是 36H.
你把:mov al,06H ;
改成:mov al,'6' ;
试试看.