viernes, 1 de marzo de 2019

1. Uso de librería emu8086 (parte 3)


Programa 1: Demostración de códigos.

Código:

include "emu8086.inc"
org 100h
 .data 
  mensaje1 db 13,10,"print_string imprime un mensaje guardado en el registro SI",0
.code
  print "Print muestra un mensaje en pantalla"    
  lea si,mensaje1
  call print_string
  gotoxy 6,6 ;esto mueve el cursor a la posicion deseada 
  print "GOTOXY mueve el cursor a la posicion deseada"
  gotoxy 6,7
  print "scan_num solicita un valor por teclado, este se guarda en cl: "
  call scan_num  
  xor ax,ax
  mov al,cl
  gotoxy 6,8
  print "print_num imprime en pantalla el valor numerico de al: "
  call print_num 
  gotoxy 6,9
  print "Putc imprime un solo caracter: "
  putc "a"  
  
  
  define_print_num 
  define_scan_num      
  define_print_num_uns
  define_print_string  
end


*

Programa 2: Hello World

Código:

include emu8086.inc

ORG    100h

PRINT 'Hello World!'

GOTOXY 10, 5

PUTC 65           ; 65 - is an ASCII code for 'A'
PUTC 'B'

RET               ; return to operating system.
END               ; directive to stop the compiler.


Resultado:




Programa 3: Demostracion del uso print_string y get_string

Código:


; demonstrate get_string and print_string
;----------------------------------------
include 'emu8086.inc'
ORG    100h

LEA    SI, msg1       ; set up pointer (SI) to msg
                      ; to ask for the number
CALL   print_string   ; print message that SI points to

LEA    DI, buffer     ; set up pointer (DI) to input buffer
MOV    DX, bufSize    ; set size of buffer
CALL   get_string     ; get name & put in buffer

LEA    SI, newln      ; point at CR/LF / Hello message 
CALL   print_string   ; print message that SI points to

RET                   ; return to operating system.

; data
msg1   DB "Enter your name: ", 0  
newln  DB 13, 10
       DB "Hello, "
buffer DB 20 DUP (0)  ; input buffer for get_string   
bufSize = $-buffer    ; calculates size of buffer

DEFINE_GET_STRING
DEFINE_PRINT_STRING
END                   ; directive to stop the compiler.




Resultado:






Programa 4: Uso scan_num, print_num, pthis




Código:




; demonstrate scan_num, print_num, pthis
;----------------------------------------
include 'emu8086.inc'
ORG    100h

LEA    SI, msg1       ; ask for the number
CALL   print_string   ;
CALL   scan_num       ; get number in CX.

MOV    AX, CX         ; copy the number to AX.

; print the following string:
CALL   pthis
DB  13, 10, 'You have entered: ', 0

CALL   print_num      ; print number in AX.

RET                   ; return to operating system.

; data
msg1   DB  'Enter the number: ', 0

; macros to define procs
DEFINE_SCAN_NUM
DEFINE_PRINT_STRING
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS  ; required for print_num.
DEFINE_PTHIS

END                   ; directive to stop the compiler.


Resultado:




Programa 5: hola mundo uso de gotoxy

Código:

name 'hola mundo'

include 'emu8086.inc'


org 100h

.code
gotoxy 5,5

printn "hola mundo"
gotoxy 5,6

printn "hola mundo 2"
gotoxy 5,7

print "dame un numero:"

call scan_num

define_scan_num

putc "A"

ret


Resultado:




Programa 6: hola mundo  gotoxy- imprime número

Código:
 

include 'emu8086.inc'

org 100h

.code    
Cursoroff      ;apaga el cursor
call scan_num  ;pide un numero

define_scan_num  ;define la funcion 
gotoxy 2,5 
putc 'A'   ;imprime un solo caracter
gotoxy 5,7    ;define en donde se ira a la pantalla
print 'dame un numero: '
call scan_num   
mov ax,cx 
gotoxy 5,8 
call print_num                   
   
define_print_num 
define_print_num_uns
end
ret


Resultado:







Referencia:
http://jbwyatt.com/253/emu/asm_tutorial_05.html


No hay comentarios:

Publicar un comentario

3. Colores Modificado 9

Modificación del programa # 9 " Colores " Por mi compañero Ambrocio isaias Laureano CR EQU 13 ;Declaro retorno de carro LF...