Programa que suma dos números en las posiciones de memoria H

Anuncio
Programa 3
Programa que suma tres números en las posiciones de memoria 01A0 y 01A1 y 01A2, y pone el
resultado en la posición de memoria 01A3.
LLI rD,A0
LHI rD,01
LD r0,[0]
LD r1,[1]
LD r2,[2]
ADDS r3,r1,r0
ADDS r3,r2,r3
ST [3],r3
Programa 4
Lee un valor de teclado y si es mayor o igual que cero pone un 1 en el registro r2, y si no, pone un 0.
El programa está en memoria a partir de la dirección 03E7.
03E7: IN r2, IP1
; Lee desde teclado en r2
03E8: LLI r0, 00
03E9: ADDS r2, r2, r0
; Pone r0 a 0
; Activa los bits de estado para el valor en r2 (para el salto condicional)
03EA: LLI rD,D1
03EB: LHI rD,03
03EC: BS
; Pone H’03D1 en rD (dirección de la instrucción ‘LLI r2, 00’)
; Salta a ‘LLI r2, 00’ (pone 0 en r2) si S=1 (el número es negativo)
03ED: LLI r2,01
; Pone un 1 en r2 (si S=0, es decir, si el número no es negativo)
03EE: LLI rD,D2
03EF: LHI rD, 03
03D0: BR
; Salta a H’03D2 (fin del programa) [Si no, ejecutaría la siguiente instrucción]
03D1: LLI r2, 00
; Pone un 0 en r2 (si S=1, es decir, si el número es negativo)
03D2: HALT
Programa 5
Como el programa 4, pero poniendo un 0 en r2 si el número leído es distinto de 0, y poniendo un 1 en
r2 si el número es igual a 0.
03E7: IN r2, IP1
; Lee desde teclado en r2
03E8: LLI r0, 00
03E9: ADDS r2, r2, r0
; Pone r0 a 0
; Activa los bits de estado para el valor en r2 (para el salto condicional)
03EA: LLI rD,D1
03EB: LHI rD,03
03EC: BZ
; Pone H’03D1 en rD (dirección de la instrucción ‘LLI r2, 00’)
; Salta a ‘LLI r2, 01’ (pone 1 en r2) si Z=1 (el número es cero)
03ED: LLI r2,00
; Pone un 0 en r2 (si Z=1, es decir, si el número no cero)
03EE: LLI rD,D2
03EF: LHI rD, 03
03D0: BR
; Salta a H’03D2 (fin del programa) [Si no, ejecutaría la siguiente instrucción]
03D1: LLI r2, 01
; Pone un 0 en r2 (si S=1, es decir, si el número es negativo)
03D2: HALT
Descargar