十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,将结果乘以10再加下一个次位数,如此重复便可求出二进制数的结果。
汇编语言实现ASCII码表示的十进制转换为二进制
;功能描述:将ASCII码表示的十进制转化为二进制
sstack segment stack
dw 64 dup(?)
sstack ends
data segment
sadd db 30h,30h,32h,35h,36h ;十进制:00256
data ends
code segment
assume cs:code,ds:data
start: mov ax,data ;
mov ds,ax
mov ax,offset sadd ;把sadd的首地址送给ax
mov si,ax
mov bx,000ah ;用于乘10操作
mov cx,0004h ;初始化循环次数
mov ah,00h ;将ax高八位清零
mov al,[si] ;将第一个数据放入al中
sub al,30h ;减30H,变为原十进制数大小
a1: imul bx ;将原十进制数乘10
mov dx,[si+01] ;取下一个数
and dx,00ffh ;dx高八位清零
adc ax,dx
sbb ax,30h
inc si
loop a1
a2:jmp a2
code ends
end start
转换结果在ax寄存器中显示为0100。