注册 登录
编程论坛 汇编论坛

[求助]十六进制转换二进制asscii 码的问题

曾小 发布于 2007-01-14 14:22, 1789 次点击
下面可能是我期末考试的题目:



大家一定得过来出出主意!谢谢大家了!!!!!

{有一个已经赋值的的变量(十六进制),将它转换为二进制的ASSCII码并将它们送如一

个缓冲区中,即如:
  
A DW 1234H转换为: 30H30H30H31H..................30H

我觉得就是将十六进制转换为二进制在将二进制转换为ASSCII码




兄弟们,大虾们快来啊!!!!!!
5 回复
#2
wchx2152007-01-16 20:06

什么问题呀?程序是
data segment
a dw 1234h
res db 16 dup(0) ;存放结果的缓冲区
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea si,a
lea di,res
mov bx,[si]
mov cx,16
next: xor dl,dl ;存放每一位
shl bx,1
adc dl,0
add dl,30h
mov [di],dl
mov ah,02h ;查看结果
int 21h
loop next
mov ax,4c00h
int 21h
code ends
end start

#3
曾小2007-01-18 10:29

这位同学的程序少了将二进制转换为 ASSCII码 的部分吧!!!!

#4
曾小2007-01-18 10:37
你的结果只是:0001001000110100B
我要的是:30303031303031303030313130313030 H
#5
wchx2152007-01-18 12:20
那再加一些语句就可以了呀
a dw 1234h
res db 16 dup(0) ;存放结果的缓冲区
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea si,a
lea di,res
mov bx,[si]
mov cx,16
next: mov dl,'3' ;增加的句子
mov ah,02h
int 21h
xor dl,dl ;存放每一位
shl bx,1
adc dl,0
add dl,30h
mov [di],dl
mov ah,02h ;查看结果
int 21h
loop next
mov ax,4c00h
int 21h
code ends
end start
#6
曾小2007-01-23 17:54
真的考了 !不过加大难度了,两个变量用子程序或地址表的方法.
1