菜鸟求助,如何把非压缩的BCD码转换为ASCII码?有朋友能指教下不?
时间:2011-01-08
来源:互联网
作者: C8LuKa 发布时间: 2011-01-08
OR AL,30H ;先把高4位变成3,就成了ASCII码了。
非压缩BCD码就是用一个8位的单元存储一位数字。它的低4位存放0-9间的数,高4位没用。
作者: shzhfu 发布时间: 2011-01-08
作者: C8LuKa 发布时间: 2011-01-08
assume cs:code
code segment
start:
mov al,93h
mov dl,al
and dl,0fh
shr al,1
shr al,1
shr al,1
shr al,1
MOV BL,10
MUL BL
ADD AL,DL
MOV AH,AL
shr ah,1
shr ah,1
shr ah,1
shr ah,1
mov al,0fh
MOV BL,AH
MOV AH,[SI+BX] ;AH<-[SI+5]
mov dl,ah
mov ah,02h
int 21h
MOV BL,AL
MOV AL,[SI+BX] ;AH<-[SI+D]
mov dl,al
mov ah,02h
int 21h
mov ax,4c00h
int 21h
mov ax,4c00h
int 21h
code ends
end start
【虎彡】压缩型BCD码以10进制的形式屏幕输出
assume cs:code
code segment
start:
mov al,93h
MOV AH,AL
SHR AH,1
SHR AH,1
SHR AH,1
SHR AH,1
ADD AH,30H
mov dl,ah
mov ah,02h
int 21h
and al,0fh
add al,30h
mov dl,al
mov ah,02h
int 21h
mov ax,4c00h
int 21h
code ends
end start
作者: znxllyuan 发布时间: 2011-01-08
AND AL,0FH ;先把高4位变成0
OR AL,30H ;先把高4位变成3,就成了ASCII码了。
非压缩BCD码就是用一个8位的单元存储一位数字。它的低4位存放0-9间的数,高4位没用。
这个是什么情况啊?你说的好像还是压缩的BCD码啊?
作者: C8LuKa 发布时间: 2011-01-08
【虎彡】压缩型BCD码转换成十六进制形式屏幕输出
assume cs:code
code segment
start:
mov al,93h
mov dl,al
and dl,0fh
shr al,1
shr al,1
shr al,1
shr……
老大啊。。。非压缩的啊。。。你这不给力啊
作者: C8LuKa 发布时间: 2011-01-08
引用 3 楼 znxllyuan 的回复:
【虎彡】压缩型BCD码转换成十六进制形式屏幕输出
assume cs:code
code segment
start:
mov al,93h
mov dl,al
and dl,0fh
shr al,1
shr al,1
shr al,1
shr……
老大啊。。。非压缩的啊。。。你这不给力啊
非要嚼烂了喂给你才吃?
非压缩型和压缩性的区别就一点不知道????
恕我直言 请先看书吧
作者: znxllyuan 发布时间: 2011-01-08
引用 5 楼 c8luka 的回复:
引用 3 楼 znxllyuan 的回复:
【虎彡】压缩型BCD码转换成十六进制形式屏幕输出
assume cs:code
code segment
start:
mov al,93h
mov dl,al
and dl,0fh
shr al,1
shr al,1
shr al,1
shr……
老大啊。。。非压缩的啊。……
。。。囧。。。用得着那么生气不?我是不懂才问的啊。。。懂的就好说了。。。你这是再蔑视小白的话我也没有话说了哦
作者: C8LuKa 发布时间: 2011-01-08
http://nucstorm.ncksoft.com/asmbook/page269.html#101
作者: masmaster 发布时间: 2011-01-08
圣凡哥 我终于知道你当年的心情了
态度,决定一切
闪猴儿·~
作者: znxllyuan 发布时间: 2011-01-08
作者: C8LuKa 发布时间: 2011-01-08
恨铁不成钢啊
圣凡哥 我终于知道你当年的心情了
态度,决定一切
闪猴儿·~
这个您走好,消气,不送,大家各做各的,我就一股子犟脾气,我还这想知道直接是怎么做的呢
作者: C8LuKa 发布时间: 2011-01-08
作者: C8LuKa 发布时间: 2011-01-08
好吧。。我自己回复个吧。。。非压缩的BCD码可以这样表示 BCD DB 0608H 表示为 68 的非压缩BCD码。。。还有没有高人能回答我的问题啊。。。关键步骤还是不会。。。最好能有个人把代码写写。。。求高人指点
前面是按1位非压缩BCD码回答的。
如果是2位的非压缩BCD码,那
BCD DB 0608H
应该是
BCD DW 0608H
其实
BCD DW X6Y8H (如果把它当BCD码看,那不管X和Y是什么都代表同一个数68),所以先用AND把它们的高4位清0,再用OR把高4位变成3即可。
AND BCD,0F0FH
OR BCD,3030H
其中后一步是关键,因为经过BCD码调整指令调整过的数,高4位已经为0,所以在调整指令后,可以不要第一句。
作者: shzhfu 发布时间: 2011-01-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28