回 帖 发 新 帖 刷新版面

主题:CX=07D7 怎么取出10进制的2007????????

谢谢

回复列表 (共3个回复)

沙发

除以10取余,一直到商小于 10
即可转化为10进制

这个方法和 10进制 转换成 2进制 一样

板凳

有代码就好了

3 楼

;你可以参见下面程序
;下面的程序把内存的 无符号数转换成 十进制 整数 
;并把数字转换成asc 2 码 在屏幕显示

title  getbx (com文件) 
.model tiny
.code
org 100h
;---------------------
start:

    mov  bx,07d7h ;要显示的数X = 07D7
    mov  dx,0  ;装入
    mov  ax,bx ;被除数
    lea si,sss ;
    mov cx,1
    mov bx,10     ;装入除数
@10:    
    cmp ax,10;小于10
    jb @20
    xor dx,dx    ;异或清0 ,等价;mov dx,0
    div bx       ;除以10后取余数
    or dl,030h   ;余数变成对应的 ASC2 码
    mov [si],dl  ;保存ASC2 码
    inc si
    inc cx
    jmp @10
@20:
    or al,030h
    mov [si],al
@30:
    mov ah,02h  ;反向逐个
    mov dl,[si] ;显示被保存的ASC2 码
    int 21h
    dec si
    loop @30
.exit
sss db  5 dup(?)
end start

我来回复

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