You are on page 1of 10

Anáhuac Mayab University

Faculty of Engineering and Exact Sciences

Student:

Roxen García López- 00349204

Activity:

Activity 2: Adressing

Professor:

José Daniel Pinzón Vivas

Curse: Embedded Systems


Adressing :

a) Fill the first addresses of bank 0 with your name.

#include "config.h"
#define aw 0
#define af 1
#define a0 0
#define ab 1
#define count 0x20
#define bank1 1

RES_VECT CODE 0x0000 ; processor reset vector


GOTO START ; go to beginning of program

; TODO ADD INTERRUPTS HERE IF USED

MAIN_PROG CODE ; let linker place main program

START

Call EJ1
;Call EJ2
;Call EJ3
GOTO $

EJ1
MOVLW 'R'
MOVWF 0
MOVLW 'O'
MOVWF 1
MOVLW 'X'
MOVWF 2
MOVLW 'E'
MOVWF 3
MOVLW 'N'
MOVWF 4
MOVLW ' '
MOVWF 5
MOVLW 'G'
MOVWF 6
MOVLW 'A'
MOVWF 7
MOVLW 'R'
MOVWF 8
MOVLW 'C'
MOVWF 9
MOVLW 'I'
MOVWF .10
MOVLW 'A'

RETURN ;loop forever

EJ2
MOVLW .31
MOVWF 0x20
MOVLB 1
;------
MOVF 0x20, aw
DECF 0x20, af
MOVWF 0xFF, ab
;------
RETURN
END

EJ3
LFSR FSR0, 200h ; Loads 100h to pointer
MOVLW 'C'
Etiqueta
MOVWF POSTINC0
CLRF POSTINC0
BTFSS FSR0H,2; '00000100'
BRA Etiqueta
GOTO $

END
b) Fill addresses 1FFh to 1E0h with numbers from 31 to 0 (use direct
addressing, store the counter in register 020h).

#include "configu.h"
#define aw 0
#define af 1
#define a0 0
#define ab 1
#define count 0x20
#define bank1 1

RES_VECT CODE 0x0000 ; processor reset vector


GOTO START ; go to beginning of program

; TODO ADD INTERRUPTS HERE IF USED

MAIN_PROG CODE ; let linker place main program

START

;Call EJ1
;Call EJ2
Call EJ3
GOTO $
EJ3
LFSR FSR0 , 200h;
MOVLW 'R' ; Load 'M' into W

Etiqueta
MOVWF POSTINC0
CLRF POSTINC0
BTFSS FSR0H,2; '00000100'
BRA Etiqueta
GOTO $

END

c) Fill the even addresses of banks 2 and 3 with the first letter of your name,
(use indirect addressing)

#include "configs.h"
#define aw 0
#define af 1
#define a0 0
#define ab 1
#define count 0x20
#define bank1 1

RES_VECT CODE 0x0000 ; processor reset vector


GOTO START ; go to beginning of program
; TODO ADD INTERRUPTS HERE IF USED

MAIN_PROG CODE ; let linker place main program

START

;Call EJ1
Call EJ2
;Call EJ3
GOTO $

;EJ1
MOVLW 'R'
MOVWF 0
MOVLW 'O'
MOVWF 1
MOVLW 'x'
MOVWF 2
MOVLW 'A'
MOVWF 3
MOVLW 'N'
MOVWF 4
MOVLW 'N'
MOVWF 5
MOVLW 'E'
MOVWF 6
MOVLW ' '
MOVWF 7
MOVLW 'G'
MOVWF 8
MOVLW 'A'
MOVWF 9
MOVLW 'R'
MOVWF .10
MOVLW 'C'
MOVWF .11
MOVLW 'I'
MOVWF .12
MOVLW 'A'
MOVWF .13
MOVLW 'L'
MOVWF .14
MOVLW 'P'
MOVWF .15
RETURN ;loop forever
EJ2
MOVLW .31
MOVWF count ;CONTADOR GUARDARLO EN LA DIRECCION DE MEMORIA 20
MOVLB bank1 ;ES EL NUMERO DE BANCO QUE QUEREMOS
;-------------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFF, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFE, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFD, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFC, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFB, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xFA, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF9, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF8, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF7, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF6, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF5, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF4, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF3, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF2, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF1, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xF0, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xEF, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xEE, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xED, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xEC, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xEB, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xEA, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE9, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE8, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE7, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE6, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE5, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE4, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE3, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE2, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE1, ab ; mover la direccion FF usando el selector de banco
;--------
MOVF count, aw
DECF count, af ; decrementar y guardar en la misma direccion
MOVWF 0xE0, ab ; mover la direccion FF usando el selector de banco
;--------
RETURN

;EJ3
LFSR FSR0, 200h ; Loads 100h to pointer
MOVLW 'R'
Etiqueta
MOVWF POSTINC0
CLRF POSTINC0
BTFSS FSR0H,2; '00000100'
BRA Etiqueta
GOTO $

END

You might also like