设有一表格,表中数为: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>