設有一表格,表中數爲:00H、11H、22H、33H、44H、55H、66H、77H、88H、99H、AAH、BBH、CCH、DDH、EEH、FFH。根據片外0000H單元的低4位的數,取出表中相應的值存到片內30H中;根據片外0000H單元的高4位的數,將片內RAM區中可位尋址的相應的位置1(從位00H~位0FH,只可有一個位地址爲1)
源程序如下:
<asm>
org 0000h
ajmp Start
org 0020h
Table: db 00h,11h,22h,33h,44h,55h,66h,77h,88h,99h,0aah,0bbh,0cch,0ddh,0eeh,0ffh
Start:
mov r0,#00h
mov r1,#30h
mov r2, #0fh
movx a,@r0 ; get the data from 0000h
mov r3,a ;store the 0000h's data, for next step
anl a,r2 ;logic and, a store the result
mov dptr ,#Table ;dptr point to Table
movc a,@a+dptr ;seek table and get the data
mov @r1,a ;send to 30h
mov a,r3
anl a, #0fh
rr a
rr a
rr a
rr a
mov r0,a
mov @r0,#1
Exit:
ajmp $
</asm>