Está en la página 1de 5

; EMU8086

; LENGUAJE ENSAMBLADOR
; manipula un arreglo de orden 4
; utiliza macros
; solicita valor por cada espacio de memoria
; autor: ruben arias
; fecha: 060514
;07 12 05 10
;11 08 09 06
;02 01 16 15
;14 13 04 03
name "exa_u3_e1"
include "emu8086.inc"
macro inicio
mov ax,data
mov ds,ax
mov si,0
endm
macro captura

printn " "
print " elemento [1] [1] ---> "
call scan_num
mov array[ren01+si],cl
inc si

printn " "
print " elemento [1] [2] ---> "
call scan_num
mov array[ren01+si],cl
inc si

printn " "
print " elemento [1] [3] ---> "
call scan_num
mov array[ren01+si],cl
inc si

printn " "
print " elemento [1] [4] ---> "
call scan_num
mov array[ren01+si],cl

mov si,0
printn " "
print " elemento [2] [1] ---> "
call scan_num
mov array[ren02+si],cl
inc si

printn " "
print " elemento [2] [2] ---> "
call scan_num
mov array[ren02+si],cl
inc si

printn " "
print " elemento [2] [3] ---> "
call scan_num
mov array[ren02+si],cl
inc si

printn " "
print " elemento [2] [4] ---> "
call scan_num
mov array[ren02+si],cl

mov si,0
printn " "
print " elemento [3] [1] ---> "
call scan_num
mov array[ren03+si],cl
inc si

printn " "
print " elemento [3] [2] ---> "
call scan_num
mov array[ren03+si],cl
inc si

printn " "
print " elemento [3] [3] ---> "
call scan_num
mov array[ren03+si],cl
inc si

printn " "
print " elemento [3] [4] ---> "
call scan_num
mov array[ren03+si],cl

mov si,0
printn " "
print " elemento [4] [1] ---> "
call scan_num
mov array[ren04+si],cl
inc si

printn " "
print " elemento [4] [2] ---> "
call scan_num
mov array[ren04+si],cl
inc si

printn " "
print " elemento [4] [3] ---> "
call scan_num
mov array[ren04+si],cl
inc si

printn " "
print " elemento [4] [4] ---> "
call scan_num
mov array[ren04+si],cl
endm

macro impresion
printn " "
printn " "
printn " "

mov ax,0
mov si,0
mov al,array[ren01+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren01+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren01+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren01+si]
call print_num
printn " "

mov ax,0
mov si,0
mov al,array[ren02+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren02+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren02+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren02+si]
call print_num
printn " "

mov ax,0
mov si,0
mov al,array[ren03+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren03+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren03+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren03+si]
call print_num
printn " "

mov ax,0
mov si,0
mov al,array[ren04+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren04+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren04+si]
call print_num
print " "
inc si

mov ax,0
mov al,array[ren04+si]
call print_num
printn " "

endm
.model small
data segment
array db 4 dup (?,?,?,?)
ren01 = 0
ren02 = 4
ren03 = 8
ren04 = 12
ends
code segment
main proc
inicio
captura
impresion
endp

ends
define_scan_num
define_print_num
define_print_num_uns
end

También podría gustarte