Programación General > ASM (Ensamblador)
Manejo De Arreglos En Ensamblador
(1/1)
maikmr:
Sabe alguin Con exactitud como de clarar un arreglo inicializado en ensamblador y como imprimir cada campo del mismo.
Vean este codigo que yo hice compila pero no funciona bien. modifiquelo si lo creen necesario, para que pueda funcionar o por favor mandemen uno que si funcione.
Este codigo es de Turbo ensamblador (TASM).
.MODEL SMALL
.STACK 64;16
.DATA
ARRAY DB 1,2,3,4,5,6,7,8,9,0
.CODE
mov ax,@data ;Inicializar los registros.
mov ds,ax
mov cx,10
Ciclo:
lea dx,ARRAY ;Coloca el array en el DX para quedar listo para ser impreso en pantalla.
mov ah,09h ;Servicio del video.
int 21h ;Interrupcion del D.O.S
LOOP Ciclo ;Se supone decrementa el CX en 1
RET
END
dreadlock:
veras aun no s emuy bien que onda con tus instrucciones pero segun io para inicializar el segmento de dato s se da:
mov dx,dgroup
mov ds,dx
--- Citar ---mov cx,10
Ciclo:
lea dx,ARRAY ;Coloca el array en el DX para quedar listo para ser impreso en pantalla.
mov ah,09h ;Servicio del video.
int 21h ;Interrupcion del D.O.S
LOOP Ciclo ;Se supone decrementa el CX en 1
--- Fin de la cita ---
segun io ais quedaria:
mov si,0
Ciclo:
lea dx,ARRAY[si] ;Coloca el array en el DX para quedar listo para ser impreso en
pantalla.
inc si
mov ah,09h ;Servicio del video.
int 21h ;Interrupcion del D.O.S
LOOP Ciclo ;Se supone decrementa el CX en 1
Super_G:
Y segun yo:
1º no conosco como se declara un arreglo como tal, simplemente cadenas de datos continuos
2º la funcion 09h de la int 21h muestra un cadena de caracteres ASCII que esta direccionado por DX y debe terminar el caracter ASCII $
3º si voy a suponer que :
ARRAY DB 1,2,3,4,5,6,7,8,9,0
es un arreglo y quiero mostrarlo como tal lo mas sencillo seria decir:
i) que los elementos de mi arreglo son numero entre de 0 a 9
ii)cada elemento de mi arreglo ocupa 1 Byte
y lo muestro asi:
--- Código: Text --- .MODEL TINY.CODEORG 100hinicio: mov cx,10 mov si,offset arrayCiclo: mov dl,[si] add dl,48 ; converiosn a ASCII mov ah,02h;Servicio para mostrar un caracter int 21h;Interrupcion del D.O.S inc si LOOP Ciclo;Se supone decrementa el CX en 1int 20hARRAY DB 1,2,3,4,5,6,7,8,9,0end inicio es una opcion!!!
Navegación
Ir a la versión completa