写一个子程序,其功能为将(R0)指出的两个RAM单元中的数转换成ASCll字符...
发布网友
发布时间:2024-08-19 07:17
我来回答
共1个回答
热心网友
时间:2024-08-21 11:00
;---------------------------------------------------------------------------------------------
;本例程实现功能:从R0所指向的两个连续单元读数,并将其转换为ASCII字符
; 转换结果放入到R5~R7单元中
;----------------------------------------------------------------------------------------------
org 0x0000
ljmp start
;ASCII码表
Table: db "0123456789ABCDEF"
;需要转换的值
Valum: db 0x3a,0xcf
start:
mov r0, #0x10
mov @r0, #0x3a ;将数据1填入@R0
inc r0
mov @r0, #0xcf ;将数据2填入@R0+1单元
;取第一个数据进行ASCII码转换
mov r0, #0x10
mov a, @r0
swap a
mov dptr, #Table
anl a, #0x0f
movc a, @a+dptr
xch a, r4 ;第一字节高4位结果放入R4中
mov a, @r0
anl a, #0x0f
movc a, @a+dptr
xch a, r5 ;第一字节低4位结果放入R5中
;取第二个数据进行ASCII码转换
inc r0
mov a, @r0
swap a
mov dptr, #Table
anl a, #0x0f
movc a, @a+dptr
xch a, r6 ;第二字节高4位结果放入R6中
mov a, @r0
anl a, #0x0f
movc a, @a+dptr
xch a, r7 ;第二字节低4位结果放入R7中
end