assume cs:code,ds:data
data segment
bcd db 01h,23h,45h,67h,89h,13h,24h,35h,46h,57h ;bcd码
asc db 20 dup(0) ;转换之渣兆码后存在这里
data ends
code segment
start: mov ax,data
mov ds,ax
mov cx,10 ;循环次数
lea si,bcd ;si指向bcd码
lea di,asc ;di指向转换之后的目标位置
next: mov al,[si] ;取出如哪bcd码
mov dl,al ;放dl保存
and al,0fh ;去掉高4位,先处理低位的bccd码
or al,30h ;转换成ascii码
mov [di],al ;存到目标位置
inc di ;修改目猜清标地址指针
push cx ;要用到移位指令,需要cl寄存器,所以将循环次数进栈保存
mov cl,4 ;移动4位
shr dl,cl ;将原bcd码的高位移到地4位上
or dl,30h ;转换成ascii码
mov [di],dl ;存入目标位置
inc di ;修改地址指针
inc si ;修改地址指针
pop cx ;循环次数出栈
loop next ;循环
mov ax,4c00h
int 21h
code ends
end start
木西?我喜欢这名字
ynus的回答里用到圆拦了堆栈,所以最好橘清胡还是正并增加一个stack段:
stack segment
dw 0
stack ends
分真高啊.................
是单片机的?是什么单片机的?