0% encontró este documento útil (0 votos)
51 vistas3 páginas

Saltos Condicionales en Ensamblador TAS

Cargado por

JUAN LEIVA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas3 páginas

Saltos Condicionales en Ensamblador TAS

Cargado por

JUAN LEIVA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Universidad Nacional de Ingeniería

UNI
Facultad de Electrotecnia y Computación
Carrera: Ingeniería en Computación
Departamento de Arquitectura de Sistemas y Aplicaciones
Asignatura: Arquitectura de Maquinas Computadoras II

LABORATORIO #4
SALTOS CONDICIONALES EN TAS
OBJETIVO

Realiza programación en lenguaje ensamblador implementando las instrucciones de


saltos condicionales en TAS.

INTRODUCCION

Saltos Condicionales

Si se cumple alguna condición específica en el salto condicional, el flujo de control se


transfiere a una instrucción de destino. Existen numerosas instrucciones de salto
condicional, según la condición y los datos.

Las siguientes son las instrucciones de salto condicional utilizadas en datos sin firma
implementadas en operaciones aritméticas:

Instrucción Descripción Bandera involucrada


JE/JZ Salto Igual o Salto Cero ZF
JNE/JNZ Salto no igual o salto no cero ZF
JA/JNBE Salto por encima o no por debajo/igual CF, ZF
JAE/JNB Salto arriba/igual o no saltar debajo CF
JB/JNAE Salto por debajo o no saltar por encima/igual CF
JBE/JNA Salto por debajo/igual o no saltar por encima AF, CF

ACTIVIDADES

1. Identifica los problemas a resolver en la lista que se provee en la sección


[PROGRAMA].

2. Selecciona el entorno de desarrollo a emplear para codificar tu programa en


ensamblador. La opción propuesta es: GUI Turbo Assembler. No aplica el
EMU8086.

3. Planifica (algoritmiza) la solución a tu problema, codifica, prueba y valida tu


programa.

1
PROGRAMA:

Dados 2 enteros introducidos por el usuario, indicar cual es mayor, cual es menor o si
son iguales.

Solución:

.MODEL SMALL
.STACK
.DATA
n1 DB 0 ;VARIABLE PARA ENTRADA 1
n2 DB 0 ;VARIABLE PARA ENTRADA 2
msg1 DB 10,13,'Primer Entero: $' ;VARIABLE DE MENSAJE 1
msg2 DB 10,13,'Segundo Entero: $' ;VARIABLE DE MENSAJE 2
M1 DB 10,13,'PRIMER ENTERO MAYOR QUE EL SEGUNDO !!!$' ;VARIABLE DE
MENSAJE 3
M2 DB 10,13,'PRIMER ENTERO MENOR QUE EL SEGUNDO !!!$' ;VARIABLE DE
MENSAJE 4
M3 DB 10,13,'ENTEROS IGUALES !!!$' ;VARIABLE DE MENSAJE 5
.CODE
MAIN:
MOV AX, @data ;ACUMULAR DIRECCION DE DATA
MOV DS, AX ;MOVER LA DIRECCION A DS

MOV AH, 9 ;SERVICIO DE IMPRESION


LEA DX, msg1 ;OBTIENE LA DIRECCION DE msg1
INT 21H ;INTERRUPCION 21H
MOV AH, 1 ;SERVICIO DE ENTRADA
INT 21H ;INTERRUPCION 21H
SUB AL, 30H ;RESTAR 30H/48D
MOV n1, AL ;MOVER ENTRADA A LA VARIABLE N1

MOV AH, 9 ;BIS


LEA DX, msg2
INT 21H
MOV AH, 1
INT 21H
SUB AL, 30H
MOV n2, AL

mov al,n1
cmp al,n2

JA MAYOR ;Salta si CF o ZF estan en OFF


JB MENOR ;Salta si CF esta activada
JE IGUALES ;Salta Si los valores que evalua CMP son iguales

2
MAYOR: ;Cuando n1 es mayor que n2
mov ah,09h
lea dx,M1
int 21h
.exit

MENOR: ;Cuando n1 es menor que n2


mov ah,09h
lea dx,M2
int 21h
.exit

IGUALES: ;Cuando son iguales


mov ah,09h
lea dx,M3
int 21h
.exit

END MAIN

También podría gustarte