题目可能主要考2分方面:1. 16进制数转ascii码; 2. 指定地址读写操作;
对于1,主要是定义一个字符数组,存放0~9A~F的字符,然后根据你取出来的16进制分高地位索引这个数组,得到对应的字符,然后保存的就是这个字符对应的ascii码了.
对于2.有_at_关键字,绝对宏,连接定位和数组指针等方法,这里应该是考数据指针的用法.
大概写了下,没有调试过
char asc[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}
char* rp=0x20;
char* wpl=0x21;
char* wph=0x22;
char index;
index = (*rp)&0x0f;//读低4位
*wpl = asc[index]; //低位转换asc码并写入
index = ( (*rp)&0xf0)>>4;
*wph = asc[index];
应该就是这样的了.
MOV A, 20H
ANL A, #15
CALL TOASC
MOV 21H, A
MOV A, 20H
SWAP A
ANL A, #15
CALL TOASC
MOV 22H, A
SJMP $
TOASC:
转换程序,请楼主自己写一个原创的。
RET
END
sss
yhju