題目:用查表法將一位十六進制數轉換為ASCII碼,入口參數放在內部RAM 50H中,出口參數在R0中。
要求:用匯編語言完成編程(用DB "0","1"......)。
;---------------------------------
最佳答案:
轉換程序如下:
D2A:
MOV A, 50H
ADD A, #2 ;加上查表時的指令地址和表格首址的差
MOVC A, @A + PC
MOV R0, A
RET
TABLE:
DB "0123456789ABCDEF" ;用:DB '0', '1', ...,形式也可以
;完
;---------------------------------
原題網址:
單片機編程!!將 ASCII 碼轉化為十六進制數,設 ASCII 碼存放在累加器中,轉化結果存放到B中。
提示:由 ASCII 碼表可知,30H-39H為0-9的 ASCII 碼,41H-46H為A-F的 ASCII 碼。
將 ASCII 碼減 30H(0-9)或 37H(A-F)就可獲得對應的十六進制數。
我個人覺得很有難度的作業(yè)!望有學之士能 幫我做出??!萬分感謝?。?br/>懸賞分:20 - 解決時間:2010-1-6 12:28
;--------------------------------
正確答案:
;程序如下:
MOV B, A
CLR C
SUBB A, #3AH
JC DDD
SUB A, #07H
DDD: ADD A, #0AH
XCH A, B
RET
;---------------------------------