汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-09-03 10:06] 习题3.30

请写出一个可把某个字变量的值转换为对应二进制数ASCII码的示例程序

答:
;----------------------------------------------------
assume  cs:code,ds:data
data    segment
tmp     db      16 dup (0)
data    ends
code    segment
start:  mov ax,data
        mov ds,ax
        mov bx,offset tmp
        mov ax,1234h
        call conv
        mov ah,4ch
        int 21h
;子程序名:conv
;功能:将16位寄存器内容转换成ASCII码
;入口参数:AX=字型数据,DS:BX=字串地址
;出口参数:DS:BX=转换后数据
conv    proc
        mov cx,16
L:      rol ax,1
        push ax
        and al,1
        or al,30h
        mov [bx],al
        inc bx
        pop ax
        loop L
        ret
conv    endp
code    ends
end     start
;----------------------------------------------------
测试结果:

d:\MASM>debug 30.exe
-r
AX=0000  BX=0000  CX=0033  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14CA  IP=0000   NV UP EI PL NZ NA PO NC
14CA:0000 B8C914        MOV     AX,14C9
-t

AX=14C9  BX=0000  CX=0033  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14CA  IP=0003   NV UP EI PL NZ NA PO NC
14CA:0003 8ED8          MOV     DS,AX
-t

AX=14C9  BX=0000  CX=0033  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14C9  ES=14B9  SS=14C9  CS=14CA  IP=0005   NV UP EI PL NZ NA PO NC
14CA:0005 BB0000        MOV     BX,0000
-d ds:0 f
14C9:0000  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
-ge

AX=1234  BX=0010  CX=0000  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14C9  ES=14B9  SS=14C9  CS=14CA  IP=000E   NV UP EI PL NZ AC PO NC
14CA:000E B44C          MOV     AH,4C
-d ds:0 f
14C9:0000  30 30 30 31 30 30 31 30-30 30 31 31 30 31 30 30   0001001000110100
-q

d:\MASM>
评论次数(0)  |  浏览次数(290)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码