回 帖 发 新 帖 刷新版面

主题:求解题目..万分感谢!

试编制一个程度,把AX中的十六进制数换为ASCII码,并将对应的ASCII码依次放到MEM数组中的四个字节中.例如,当(AX)=2A49H 时,程序执行完后,MEM 中的4个字节内容为39H ,34H ,41H和32H .

回复列表 (共1个回复)

沙发

;2005年12月7日12:14:56
;Dummy
.model small

.stack
.data
MEM        db    4 dup (0)
;*        db  '$'

.code
_main:
            mov        ax, @data
            mov        ds, ax

            mov        ax, 2A49H
            lea        dx, MEM
            call    toHexString

;*            lea        dx, MEM        ;调试用于输入
;*            mov        ah, 9
;*            int        21H

            mov        ax, 4C00H
            int        21H

toHexString    proc
            push    si
            mov        si, dx
            
            cld
            mov        cl, 4
_@1:
            mov        dx, ax
            and        ax, 000FH
            or        al, '0'
            cmp        al, '9'
            jbe        _@2
            add        al, 7
_@2:
            mov        byte ptr [si], al
            inc        si
            mov        ax, dx
            shr        ax, cl
            jnz        _@1

            pop        si
            ret    
toHexString endp
end _main

我来回复

您尚未登录,请登录后再回复。点此登录或注册