Table of Contents Previous topic Next topic
Extension Examples->Memory Bank Switching->8051 Test Code
; fill the first 100h bytes of each bank with a recognisable pattern
; first bank 0 (the default bank)
mov dptr,#8000h
mov r2,#0FFh
mov a,#11h ; 11 into bank 0
loop0
movx @dptr,a
inc dptr
djnz r2,loop0
mov P1,#1 ; switch to memory bank 1
mov dptr,#8000h
mov r2,#0FFh
mov a,#22h ; 22 into bank 1
loop1
movx @dptr,a
inc dptr
djnz r2,loop1
mov P1,#2 ; switch to memory bank 2
mov dptr,#8000h
mov r2,#0FFh
mov a,#33h ; 33 into bank 2
loop2
movx @dptr,a
inc dptr
djnz r2,loop2
mov P1,#0 ; switch to memory bank 3
mov dptr,#8000h
mov r2,#0FFh
mov a,#44h ; 44 into bank 3
loop3
movx @dptr,a
inc dptr
djnz r2,loop3
; now alternate between memory banks and observe the xdata view changing
loop4
mov P1,#1 ; switch to memory bank 1
mov P1,#0 ; switch to memory bank 3
mov P1,#2 ; switch to memory bank 2
mov P1,#3 ; switch to memory bank 0
jmp loop4