jueves, 28 de mayo de 2020

Mi cuarto programa en emu8086

En este cuarto programa, se realizo un comparación de letras donde tenemos que obtener que la letra A debe ser mayor a B o a la inversa y el programa nos tiene que arrojar que A es mayor B y de esa manera identificar que esta correcto el programa

Codigo:

.model small
.stack
.data

mensaje1 db 13,10, 'A > B$'
mensaje2 db 13,10, 'A < B$'
mensaje3 db 13,10, 'A = B$'

.code     

inicio:

mov ax, @data
mov ds,ax

mov ax, 5h
mov bx, 5h

cmp ax,bx
jg esMayor
jl esMenor
je esigual

esMayor:   

lea dx, mensaje1
call imprimir
jmp finalizar

esMenor:  

lea dx, mensaje2
call imprimir
jmp finalizar
            
            
esigual:
lea dx, mensaje3
call imprimir
jmp finalizar 

imprimir:
mov ah, 9h
int 21h
ret

finalizar:
mov ah,4h
int 21h
ret  


Capturas:





miércoles, 22 de abril de 2020

Mi tercer programa de emu8086

Acá realizaremos para utilizar offset, intruccion call y jump y  4atc todas esas son instrucciones a realizar para poder hacer la simulación.

codigo:
.model small 
.stack
.data

mensaje1 db 13,10, "hola mundo $"
mensaje2 db 13,10, "desarrolo de software $"
mensaje3 db 13,10, "bienvenidos $"  

.code 


inicio:

       mov ax, @data
       mov ds, ax 
       
       mov dx, offset mensaje1 
       call imprimir
       
       mov dx, offset mensaje2
       call imprimir
       
       mov dx, offset mansaje3
       call imprimir 
       
       jmp finalizar
       
       
       imprimir:
       mov ah, 9h
       int 21h
       ret
       
       finalizar:
       mov ah, 4ch
       int 21h
       
       
       end inicio
      
capturas:



        

lunes, 23 de marzo de 2020

Mi segundo programa con emu8086

En nuestro segundo programa de emu8086 realizaremos un método donde imprimiremos un mensaje pero también se vera gráficamente mediante un cmd, como se muestra en la imagen.



Mi primer programa con mob8086

Empezaremos a realizar un pequeño programa donde moveremos varios registros de Ax a Bx o agregar el mismo dato en los dos como se muestra en la imagen.




miércoles, 18 de marzo de 2020

Obtención de cadena con representación decimal.

Obtención de cadena con representación decimal En este modo, los datos son proporcionados directamente como parte de la instrucción. Ejemplo: Mov AX,34h ;Copia en AX el número 34h hexadecimal Mov CX,10 ;Copia en CX el número 10 en decimal 2.12 Instrucciones lógicas AND Realiza la conjunción de los operandos bit por bit. Sintaxis: AND destino, fuente Con esta instrucción se lleva a cabo la operación "y" lógica de los dos operandos: Fuente Destino Resultado en operando destino 1 1 1 1 0 0 0 1 0 0 0 0 NEG Genera el complemento a 2 Sintaxis: NEG destino Genera el complemento a 2 del operando destino y lo almacena en este mismo operando. Ejemplo, si AX guarda el valor de –2 (FFFE), entonces: NEG AX Dejaría como resultado en AX el valor 0002. NOT Lleva a cabo la negación bit por bit del operando destino. Sintaxis: NOT destino El resultado se guarda en el mismo operando destino. OR OR inclusivo lógico Sintaxis: OR destino, fuente La instrucción OR lleva a cabo, bit por bit, la disyunción inclusiva lógica de los dos operandos: Fuente Destino Resultado en operando destino 1 1 1 1 0 1 0 1 1 0 0 0 TEST Compara logicamente los operandos Sintaxis: TEST destino, fuente Realiza una conjunción, bit por bit, de los operandos, pero a diferencia de AND esta instrucción no coloca el resultado en el operando destino, solo tiene efecto sobre el estado de las banderas. XOR OR exclusivo Sintaxis: XOR destino, fuente Su función es efectuar bit por bit la disyunción exclusiva lógica de los dos operandos.

En este modo, los datos son proporcionados directamente como parte de la instrucción.

Ejemplo:
Mov AX,34h ;
Copia en AX el número 34h hexadecimal Mov CX,10 ;
Copia en CX el número 10 en decimal
.COMMENT
Programa: PushPop.ASM
Descripción: Este programa demuestra el uso de las instrucciones para el manejo de la pila, implementando la instrucción XCHG con Push y Pop
MODEL tiny
.CODE

Manipulación de la pila

La pila es un grupo de localidades de memoria que se reservan para contar con un espacio de almacenamiento temporal cuando el programa se está ejecutando.La pila es una estructura de datos del tipo LIFO (Last In First Out), esto quiere decir que el último dato que es introducido en ella, es el primero que saldrá al sacar datos de la pila.
Para la manipulación de la pila ensamblador cuenta con dos instrucciones especificas, las cuales son las siguientes:
Push:Esta instrucción permite almacenar el contenido del operando dentro de la última posición de la pila.
Pop:Esta instrucción toma el último dato almacenado en la pila y lo carga al operando.

Instrucciones aritmeticas

Dentro de ensamblador se pueden llevar a cabo las 4 instrucciones aritméticas básicas, cada una de ellas cuenta con su propia función:
Instrucción de Suma ADD:
Suma los operandos que se le dan y guarda el resultado en el primer operando.
Instrucción de Resta SUB:
Resta el primer operando al segundo y almacena el resultado en el primero.
Instrucción de multiplicación MUL:
Multiplica el contenido del acumulador por el operando, a diferencia de los métodos anteriores, solo es necesario indicar el valor por el que se multiplicará, ya que el resultado siempre es almacenado en el registro AX.
Instrucción de división DIV:
Divide un numero contenido en el acumulador entre el operando fuente, el cociente se guarda en AL o AX y el resto en AH o DX según el operando sea byte o palabra respectivamente. Es necesario que DX o AH sean cero antes de la operación por lo que es necesario utilizar el ajuste de división antes del la instrucción DIV.

Mi cuarto programa en emu8086

En este cuarto programa, se realizo un comparación de letras donde tenemos que obtener que la letra A debe ser mayor a B o a la inversa y el...