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 &#59; converiosn a ASCII    mov ah,02h&#59;Servicio para mostrar un caracter    int 21h&#59;Interrupcion del D.O.S     inc si    LOOP Ciclo&#59;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

[0] Índice de Mensajes

Ir a la versión completa