Vous êtes sur la page 1sur 7

Pseudocdigo

Inicializacin de variables A cte

Operandos
A es un registro de datos A Dn A es una variable de memoria

Ensamblador
MOVE.BWL #cte,Dn o MOVEQ.BWL #cte,Dn si cte <256 Opcin 1 A: DC.BWL Opcin 2 A: DS.BWL ...... MOVE.BWL #cte, A 1 cte

A es un registro de direcciones A An

Inicializacin MOVEA.WL #cte,An Inicializacin del puntero An tabla: DC.BWL valor1,valor2,...valorN .... MOVEA.WL #tabla, An

Asignacin A B

A y B son registros de datos A Dn B Dm

MOVE.BWL Dm,Dn

A y B son variables de memoria A: DC.BWL valorA del mismo tamao B: DC.BWL valorB .... MOVE.BWL B,A A es un registro de direcciones y B: DC.BWL valorB B una variable de memoria .... A An MOVEA.WL B,An Asignacin con puntero A (*B) A (*B)+ A -(*B) A es un registro de datos y B un registro de direcciones A Dn B Am MOVE.BWL (Am),Dn MOVE.BWL (Am)+,Dn MOVE.BWL -(Am),Dn A es una variable de memoria y A: DC.BWL valor1 B un registro de direcciones ...... MOVE.BWL (Am),A MOVE.BWL (Am)+,A MOVE.BWL -(Am),A

Pseudocdigo
Asignacin a un elemento de una tabla tabla[i] cte tabla[i] Dn tabla[i] B

Operandos
El destino es un elemento de la memoria y el fuente una constante, un registro de datos o una variable de memoria. La variable i es un ndice que generalmente ser un registro de datos. Sea el ndice i el registro Di. Si i< 64k se usar Di.W si i>64K se usar Di.L B: ....

Ensamblador
Tabla: DC.BWL valor1,valor2,..... DC.BWL valorB

MOVE.L #tabla, An ;Establece ;puntero a tabla ..... MOVE.WL Di,Dc ;copia ndice en Dc

Posicin de memoria del MULU #K,Dc ; Dc=Dc*K donde elemento tabla[i] = tabla + ;K=1 para B, 2 para W y 4 para L i*tam_elem donde tam_elem es 1 para B, 2 para W, y 4 para L. MOVE.BWL #cte, 0(An,Dc.WL) MOVE.BWL Dn, 0(An,Dc.WL) i vara entre 0 hasta TAM-1. MOVE.BWL B, 0(An,Dc.WL) Donde TAM es el nmero de elementos de la tabla. Asignacin a un elemento de una tabla de dimensin NxM tabla[i][j] cte tabla[i][j] Dn tabla[i][j] B Las variables i,j son ndices Tabla: DC.BWL a00,a01,a10,a11, para los que usamos registros a20,. .... de datos. Sean Di, Dj dichos B: DC.BWL valorB registros. .... MOVE.L #tabla, An ;Establece Posicin de memoria del elemento tabla[i][j] = tabla + ;puntero a tabla i*tam_elem*M + j*tam_elem; donde tam_elem es 1 para B, 2 ..... para W, y 4 para L. MOVE.WL Di,Dc ;copia ndice en Dc MULU #K,Dc ; Dc=Di*K donde i vara desde 0 hasta N-1 j vara desde 0 hasta M-1 ;K=1 para B, 2 para W y 4 para L MULU #M,Dc ;Dc=Di*K*M MOVE.WL Dj,Dd; copia ndice en Dd MULU #K,Dd ; Dd=Dj*K donde ADD.L Dd,Dc MOVE.BWL #cte, 0(An,Dc.WL) MOVE.BWL Dn, 0(An,Dc.WL) MOVE.BWL B, 0(An,Dc.WL)

Pseudocdigo
Operaciones aritmticas A A cte

Operandos
A es un registro de datos A Dn Opcin 1

Ensamblador
ADD.BWL #cte,Dn SUB.BWL #cte,Dn Opcin 2 ADDI.BWL #cte,Dn SUBI.BWL #cte,Dn Opcin 3 ADDQ.BWL #cte,Dn SUBQ.BWL #cte,Dn Si cte =1..8

A es una variable de memoria

A: .....

DC.BWL valorA

ADDI.BWL #cte,A SUBI.BWL #cte,A Operaciones aritmticas AAB A y B son variables de memoria A: DC.BWL valorA y del mismo tamao B: DC.BWL valorB .... MOVE.BWL B,Dn ADD.BWL Operaciones aritmticas (MUL) CA* B Dn,A (SUB.BWL Dn,A) A y B son variables de memoria A: DC.W valorA B: DC.W valorB C: DS.L 1 .... MOVE.W A,Dn MOVE.W B,Dm MULU Dm,Dn (MULS Dm,Dn) MOVE.L Dn,C

Pseudocdigo
Operaciones aritmticas (DIV) Coc A / B Res A % B

Operandos

Ensamblador
B: DC.W valorB Coc: DS.W 1 Res: DS.W 1 .... MOVE.L A,Dn MOVE.W B,Dm DIVU Dm,Dn (DIVUS Dm,Dn) MOVE.W Dn,Coc SWAP Dn MOVE.W Dn,Res

A y B son variables de memoria A: DC.L valorA

De empaquetamiento 1) B[15:0] A[7:0] 2) B[31:0] A[15:0]

A y B son variables de memoria 1) sin signo A: DC.B valorA B: DS.W 1 ... CLR.W Dn MOVE.B A,Dn MOVE.W Dn,B 2) A: DC.W valorA B: DS.L 1 ... CLR.L Dn MOVE.W A,Dn MOVE.L Dn,B A y B son variables de memoria 1) con signo A: DC.B valorA B: DS.W 1 ... MOVE.B A,Dn EXT.W Dn,B 2) A: DC.W valorA B: DS.L 1 ... MOVE.W A,Dn EXT.L Dn,B

Pseudocdigo
Sentencias de control: Bucle FOR For i=valor1 to valor2 step inc Cuerpo del bucle end for

Operandos

Ensamblador

La variable i est en memoria y i: DC.BWL valor1 su tamao y consideracin (con ... signo o sin signo) depende de valor1 y valor2. Tanto valor1 buclefor: CMPI.BWL #valor2,i como valor2 e inc son BHI finbuclefor constantes. ADDI.BWL #inc,i cuerpo del bucle BRA buclefor finbuclefor: ........

Condiciones A>B A >= B A<B A <= B A==B A<>B

A y B son variables de memoria A: DC.BWL valorA con o sin signo y del mismo B: DC.BWL valorB tamao. .... (para todas) MOVE.BWL A,Dn CMP.BWL (para A>B) BHI ;sin signo ( BGT) ;con signo (para A>=B) BCC ;sin signo ( BGE) ;con signo ...(ver tabla en documentacin) A es una variable de memoria y A: DC.BWL valorA B una constante del mismo .... tamao. (para todas) CMPI.BWL (para A>B) BHI ;sin signo ( BGT) ;con signo ...(ver tabla en documentacin) #B,A B,Dn

Pseudocdigo
Sentencias de control: Bucle WHILE While(condicion) cuerpo de while end while

Operandos
Ejemplos: While(A ==B) cuerpo end while While(A >=B) cuerpo end while

Ensamblador
A: DC.BWL valorA B: DC.BWL valorB .... while1: MOVE.BWL A,Dn CMP.BWL cuerpo BRA while1 finwhile1 ... B,Dn BNE finwhile1

donde A y B son variables de while2: memoria con signo. MOVE.BWL A,Dn CMP.BWL cuerpo BRA while2 finwhile2: ... Sentencias de control: DO ... WHILE do cuerpo while(condicion) do cuerpo While(A == B) donde A y B son variables de memoria del mismo tamao y sin signo Ejemplos: do cuerpo While(A <B) A: DC.BWL valorA B: DC.BWL valorB .... dowhile1: cuerpo MOVE.BWL A,Dn CMP.BWL dowhile2: cuerpo MOVE.BWL A,Dn CMP.BWL B,Dn BEQ dowhile2 B,Dn BCS dowhile1 B,Dn BLT finwhile2

Pseudocdigo
Sentencias de control: IF..ELSE If (condicion) cuerpo1 else cuerpo2 endif

Operandos
Ejemplos if (A <=B) cuerpo1 else cuerpo2 end if

Ensamblador
A: DC.BWL valorA B: DC.BWL valorB .... if1: MOVE.BWL A,Dn CMP.BWL B,Dn BHI else1 cuerpo1 BRA finif1 else1: cuerpo2 finif1: .....

if (A <>B) cuerpo1 else

if2: MOVE.BWL A,Dn CMP.BWL B,Dn cuerpo2 BEQ else2 end if cuerpo2 BRA finif2 else2: donde A y B son variables de cuerpo2 memoria del mismo tamao y finif2: ..... sin signo Llamada a subrutinas C funcion ( A,B) A,B y C son variables de A: DC.WL valorA memoria. Los argumentos se B: DC.WL valorB pasan por PILA. C: DS.WL 1 ... Sea tamA = 2 o 4 segn A sea W o L Igualmente se definen tamB MOVE.WL A,-(A7) y tamC. MOVE.WL B,-(A7) MOVE.WL C,-(A7) BSR funcion MOVE.WL -(A7),C ADDA.WL Construccin de subrutinas subr funcion ( A,B) dev C cuerpo funcion end subr funcion Acceso a variables Sea tamA = 2 o 4 segn A sea W o L Igualmente se definen tamB La variable B en la direccin dirB(A7) y tamC. donde dirB=tamC+4 La variable A en la direccin dirA(A7) donde dirA= tamC+tamB+4 .... La variable C se encuentra en la direccin 4(A7) Codificacin Funcion: Cuerpo endfuncion: RTS #K,A7 ;donde K= tamA + tamB

Vous aimerez peut-être aussi