压缩BCD码转换成ASCII码
发布网友
发布时间:2022-05-15 02:22
我来回答
共3个回答
热心网友
时间:2023-11-24 05:01
; 本程序通过编译,运行正确。
Code Segment
Assume CS:Code,DS:Code
BCD_Number db 45h,32h,56h,98h
dw 6 p(?)
Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段
cld
lea si,BCD_Number
lea di,BCD_Number[8]
mov cx,2
rep movsw ;把这4个字节的压缩BCD码保存到与其相距8个字节的后续单元
lea si,BCD_Number[8]
lea di,BCD_Number
mov cx,4
BCD_ASCII: lodsb
push cx
mov cx,4
xor ah,ah
shl ax,cl
shr al,cl
or ax,3030h
xchg ah,al
stosw
pop cx
loop BCD_ASCII
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
热心网友
时间:2023-11-24 05:01
压缩BCD码转换成ASCII码,就变胖了,xxxxH放不下!
;压缩BCD码转换成ASCII码
data segment
Num db 48h,37h
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
lea si,Num
cld
mov di,si
mov bp,[si]
mov cx,4
next:;转换
rol bp,1
rol bp,1
rol bp,1
rol bp,1
mov ax,bp
and ax,0fh
or al,30h
stosb
loop next
lea si,Num
mov ah,0eh
mov cx,4
Lop:;显示
lodsb
int 10h
loop LOP
mov ah,0
int 16h
mov ah,4ch
int 21h
code ends
end start
热心网友
时间:2023-11-24 05:01
用查表指令
TABE:
DB '01234'
DB '56789'