First commit 06/07/1996

This commit is contained in:
2021-09-03 17:40:06 +02:00
commit bf4bcbd4f8
23 changed files with 1754 additions and 0 deletions

110
CDS/EJEMPLO3.ASM Normal file
View File

@ -0,0 +1,110 @@
segmento SEGMENT
ASSUME DS:segmento
ORG 100h
principal PROC NEAR
mov ax, OFFSET Cadena1
push ax
mov al, 1eh
push ax
call VerCadena
mov ah, 00h ; Se acepta una tecla
int 16h
mov ax, OFFSET Cadena2
push ax
mov al, 21h
push ax
call VerCadena
mov ah, 00h ; Se acepta una tecla
int 16h
mov ax, OFFSET Cadena3
push ax
mov al, 34h
push ax
call VerCadena
mov ah, 00h ; Se acepta una tecla
int 16h
mov ax, OFFSET Cadena4
push ax
mov al, 42h
push ax
call VerCadena
mov ah, 00h ; Se acepta una tecla
int 16h
mov ax, OFFSET Fin
push ax
mov al, 07h
push ax
call VerCadena
mov ah, 00h ; Se acepta una tecla
int 16h
mov ah, 4ch
int 21h
principal ENDP
VerCadena PROC NEAR
push bp
mov bp, sp
push bx ; Se almacenan en la pila los registros que va a utilizar
push cx ; la subrutina. El valor de SP disminuye en 3 * 2 = 6
push dx ; unidades
; Por otro lado, cuando se sabe que el registro AX es el
; empleado para pasar los par<61>metros, no es necesario
; salvarlo
mov ax, 0600h ; Se borra la pantalla empleando el atributo
mov bh, [bp+4] ; pasado como par<61>metro mediante el registro AL,
mov cx, 0000h ; almacenado ahora en la pila y recuperado con
mov dx, 184fh ; la instrucci<63>n MOV BH, [BP+4]
int 10h
mov ah, 02h ; Se posiciona el cursor en (25,11)
mov bh, 00h
mov dh, 11
mov dl, 25
int 10h
mov ah, 09h
mov dx, [bp+6] ; El desplazamiento de la cadena que se va a visualizar
int 21h ; se mueve a DX
pop dx ; Se recuperan los valores de los registros, de forma que
pop cx ; al volver el control de la ejecuci<63>n al m<>dulo principal
pop bx ; <20>stos almacenen los valores que pose<73>an antes de la
; llamada al procedimiento. SP se incrementa en 3 * 2 = 6
; unidades
pop bp ; Se restaura BP
ret 4
VerCadena ENDP
Cadena1 DB 'Primera cadena que se visualiza$'
Cadena2 DB 'Segunda cadena que se visualiza$'
Cadena3 DB 'Tercera cadena que se visualiza$'
Cadena4 DB 'Cuarta cadena que se visualiza$'
Fin DB 'Fin del programa ejemplo$'
segmento ENDS
END principal