Entradas

Mostrando entradas de febrero, 2019

EJERCICIOS 28/FEB/18 CON LIBRERIAS

Imagen
org 100h name "suma de dos numeros" include "emu8086.inc"   ;macro de la libreria org 100h .data suma db 2 dup (?) ;manera de declarar un arreglo .code sumas proc     print " Introduce el primer numero: "     call scan_num   ;llamada a un procedimiento para pedir un numero     mov suma[0],cl     printn " "      ;macro que imprime un espacio     print " Introduce el segundo numero: "     ;macro que imprime un letrero     call scan_num      ;llamada a un procedimiento para pedir un numero     mov suma[1],cl     xor ax,ax          ;xor nemonico que limpia registros     add al,suma[0]     ;valor de suma[0]     add al,suma[1]     ;suma valor de suma [1]     printn " "         ;macro de la libreria pone un espacio y retorn...

Comparación si es mayor o menor a 18

Imagen
org 100h ;comparacion si es mayor o menor a 18 .model small .stack 64 ;segmento de pila .data    diez db 10;variable para poder imprimir dos caracteres(se multiplica por el primer valor para sacar decimales) num1 db 0 ;variable para la edad msg db 'Ingrese su edad: $' msg1 db 'Eres mayor de Edad $' msg2 db 'Eres menor de Edad $' .code     inicio proc Far         mov ax,@data ; direccionamiento del seg         mov ds,ax ;Los datos se muevan al registro ax          ;poner el primer letrero         mov ah,09          lea dx,msg         int 21h                   mov ah,01         int 21h         sub al,30h;Convierte a valor           mul diez; se mult el numero ingresado para...
Imagen
org 100h mov ax,9 mov bx,9 div bx  ret org 100h mov ax,100 mov bx,5 div bx  ret

REGISTROS

Imagen
Presentación: https://www.exabyteinformatica.com/uoc/Informatica/Estructura_de_computadores/Estructura_de_computadores_(Modulo_6).pdf

EJERCICIOS

Imagen
org 100h mov ax,8 mov bx,9 mul bx ret org 100h mov ax,80 mov bx,10  mul bx ret org 100h mov ax,80 mov bx,1000 mul bx ret

CALIFICACION

Imagen
rg 100h .model small  .stack 64 .data ;Seccion de variables    msg db 'Dame una calificacion (seguida de un enter): $'    aprobado db 13,10, 'Aprobado$'    reprobado db 13,10, ' Reprobado$'    VAR1 dw ?,'$'    VAR2 dw ?,'$'     VAR3 dw ?,'$'     .code ;Inicia el segmento del codigo Resultado PROC FAR      MOV AX,@DATA ;Como inicio     MOV DS,AX ;--------------DESPLEGAR PRIMER MENSAJE     MOV AH,09     lea dx,msg     int 21h   ;--------------PEDIR UN CARACTER     MOV AH,01     int 21h     MOV VAR1,AX ;--------------PEDIR SEGUNDO CARACTER     MOV AH,01     int 21h     MOV VAR2,AX    ;--------------PEDIR TERCER CARACTER     MOV AH,01     int 21h     MOV VAR3,AX   ;-------...

RESTA

Imagen
org 100h .model small .stack 64 .data  n1 db 0  n2 db 0  resta db 0  msg1 db "Ingrese el primer valor:", '$'  msg2 db 10,13, "Ingrese el segundo valor:", '$'  msg3 db 10,13, "Resta=", '$'  .code  begin proc far     ;direccionamos al segmentos de datos     mov ax,@data     mov ds,ax     ;solicitamos el primer digito     mov ah,09     lea dx,msg1     int 21h     ;se lee el primer valor     mov ah,01     int 21h     sub al,30h; convierte el caracter en numero     mov n1,al        ;solicitamos el segundo digito     mov ah,09     lea dx,msg2     int 21h     mov ah,01     int 21h     sub al,30h;convierte el caracter en numero     mov n2,al     ;operacion     mov al,n1 ;lo que esta en n1 lo ...

SUMA

Imagen
org 100h .model small .stack 64 .data   n1 db 0   n2 db 0   suma db 0   msg1 db "Dame el primer valor",'$'   msg2 db 10,13,"Dame el segundo valor",'$'   msg3 db 10,13, "Suma=",'$' .code   begin proc far     ;direccionamos al segmento de datos     mov ax,@data     mov ds,ax     ;solicitamos el primer digito     mov ah, 09     lea dx, msg1     int 21h     ;se lee el primer valor     mov ah,01              int 21h     sub al,30h;Convierte el caracter en numero     mov n1, al     ;solicitamos el segundo digito     mov ah, 09     lea dx, msg2     int 21h     mov ah,01     int 21h     sub al, 30h;convierte el caracter en numero     mov n2, al     ;opreacion     mov al,n1   ...

Ciclo de un mensaje

Imagen
org 100h .model small .stack 64 .data mensaje db "Ingrese el numero de veces que se repetira el mensaje (1-9,13,10, $) " repetir db 13,10, "Repitiendo el ciclo $" .code inicio proc far       mov ax, @data       mov ds, ax         mov ah, 09       lea dx, mensaje       int 21h         mov ah, 01       int 21h       ;convertir a valor que se tecleo       sub al, 30h         mov cl,al         ciclo:            mov ah, 09            lea dx, repetir            int 21h          loop ciclo                mov ax,4c00h          int 21h inicio endp ret

RESUMEN

video : Lectura de Caracteres en Lenguaje Ensamblador (ver segmentos de Registros)
Imagen
org 100h ; espacio en memoria     MOV  DL , 'A';se transfiere la letra A al reglon  Mov CX , 26 ; se transfiere 26 al registro contador  imprime: ; va a imprimir hasta acabar las 26  Mov  AH ,02; se transfiere 02  al acumulador  Int 21h ; dato ascii leido desde el teclado  INC DL; siguiente caracter del alfabeto  LOOP imprime ; continua ;MOV DL,"a" ;MOV CX,  10  ;LOOP2 ;     MOV AH,02 ;     INT 21h ;     inc dl ;LOOP  LOOP2    ret

Registros internos del microprocesador

Imagen

Programa 2

Imagen
org 100h mov ax, 80 ; AX=80 mov bx, 450 ; BX=450 inc bx ;BX++ bx 451 add ax, 80 ; AX=AX+80 mov cx, 200 ; CX=200 sub cx, ax ; CX=CX-AX ; ret              ; programa 2 ; ax= 80 ; valor de bx en hex ; inc bx 451      ; add ax, 80 ax=160 ; cx=200 ; sub cx, ; sub cx,ax =120 ; ; resultados y valor ;

Suma de un dijito

Imagen
org 100h ;Suma numero de un solo dijito mov ax, 8H mov bx, 4h add ax,bx ; add hace suma mov bx,5 sub ax,bx ; sub hace resta mov bx,3 ; mov hacia donde lo mueve inc bx ; inc incrementa en 1 mov ax,6 hlt ; terminar proceso