Ensamblador - Para que sirven estas variables?

   
Vista:

Para que sirven estas variables?

Publicado por pablo (2 intervenciones) el 15/11/2014 16:42:50
NOTESE QUE EL PROGRAMA LEE UNA CADENA Y CUENTA LOS CARACTERES DE ELLA. MIS DUDAS ESTAN COMENTADAS A PARTIR DE LA LINEA 11.
PARA QUE SIRVEN ESAS VARIABLES? PROBE COMENTANDO Y TODAVIA NO PUEDO LLEGAR A UNA CONCLUSION QUE ME AYUDE A REVELAR PARA QUE SIRVEN. ESPERO SUS RESPUESTAS AMABLEMENTE Y AGRADECIDO ESTARÉ. SALUDOS



.MODEL small
.stack 100h
include emu8086.inc
.data
LF equ 10
OD equ 13

mens db "Inserta cadena",LF,OD,"$"
salto db LF,OD,"$"
cadena label byte ;este programa acepta como máximo 50 caracteres introducidos
chare db 50 ;ESTA VARIABLE PARA QUE SIRVE??? <-----------DUDA!!
max db 50 ;ESTA VARIABLE PARA QUE SIRVE??? <-----------DUDA!!
campo db ? ;ESTA VARIABLE PARA QUE SIRVE??? <-----------DUDA!!

.code
start:
mov ax,@data ;aca mueve todo el segmento de datos al registro ax
mov ds,ax ;aca mueve al registro ds todo lo qe hay en ax (datos)

mov ah,09
lea dx,mens ;aca lo qe hace es mostrar por pantalla
int 21h ;mens

mov ah,0ah ;aca nos va a pedir el numero
lea dx, cadena ;qe necesitamos averiguar
int 21h ;su longitud


mov ah,09 ;aca va a leer un salto
lea dx,salto ;que es un fin de linea
int 21h ;ya que arriba esta definido!!

lea si,campo ;aca manda todo el campo al registro SI
mov cx,00 ;asigna 0 a cx para qe no tenga basura!!!!!!!!

loop0:
mov al,[si] ;mueve a al lo qe hay en [si]
cmp al,0dh ;si detecta un enter
jz salimos ;deja de contar los caracteres
inc cx ;se suma 1 al registro cx
inc si ;aumenta en 1 la direccion del registro SI para
jmp loop0 ;que se fije el siguiente numero en la cadena


salimos:
;mov bl,10
mov ax,cx
call print_num
hlt
;div bl
;mov dx,ax
;or dx,3030h
;mov ah,02h
;int 21h
;xchg dl,dh
;mov ah,02h
;int 21h
;mov ax, 4C00h
;int 21h
define_scan_num
define_print_string
define_print_num
define_print_num_uns
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Para que sirven estas variables?

Publicado por Messias (2 intervenciones) el 17/11/2014 08:57:50
no estoy tan familiarizado con assembler en dos, más con assembler en windows.
pero el programa está mal escrito.

chare db 50 ;longitud del buffer
max db 50 ;cuantos caracteres insertó dos en el buffer
campo db ? ;declarar un buffer

campo solo tiene un byte cuando en realidad deberian ser 50 bytes

campo db 50 dup (?)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar