Ensamblador - proyecto de clase

 
Vista:

proyecto de clase

Publicado por jose luis (1 intervención) el 07/03/2006 17:22:31
ocupo codigo de como hacer un cuadro en pantalla con una sombra y como hacer para editar un texto todo en ensamblador
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

RE:proyecto de clase

Publicado por DaemonMaximus (6 intervenciones) el 08/03/2006 19:33:18
para hacer un cuadro tendria que buscar el mapa de caracteres en modo texto (con las fuentes 8x14) hay unos caracteres que the permiten dibujar un cuadro y usar los atributos para la sombra, usando la AX=0x1300/INT 0x10 en modo real se puede dibujar y colocando en BL el atributo del caracter y en ES:BP la cadena de datos a mostrar en la pantalla en modo texto

para editar un texto se puede usar la INT 0x16 funcion 0 para leer el teclado que retorna en AL el caracter de la tecla pulsada y despues se usa la INT 10 funcion 0xE para mandar a la pantalla la tecla oprimida en AL

; esperar a que se presione una tecla

enter equ 0xD
Backspace equ 8

mov ax,0
INT 0x16

; comparar si la tecla presionada fue backspace

cmp al, backspace
je Backspace

; comparar si la tecla presionada fue enter

cmp al,enter
jz InsertLineBreak

; escribir caracter en la pantalla en modo teletipo

mov ah,0xE
int 0x10
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

EDITOR DE TEXTO

Publicado por ALEJANDRA (1 intervención) el 11/12/2007 19:59:40
hOLA...

LES DEJO EL KODIGO DE UN EDITOR DE TEXTO, OJALA LES SIRVA DE ALGO...

SALUDOS...

.model small
.stack 30
.data
TABLE5 DB "PROYECTO ENSAMBLADOR$"
table db "Preciona ENTER para continuar$"
table1 db "$"
table2 db "ESC para terminar.$"
table3 db "$"
table4 db "$"
.code
MOV AX,@DATA
MOV DS,AX
CALL CUADRO
CALL NOMBRES
CALL CUADRO
MOV CH,1
MOV CL,1




SALTO:
CMP AL,13
JE SALT
RET
SALT:
MOV CL,78
CALL COLUMNA
DEC CL
RET

FILA:
CMP CH,22
JE DATO
INC CH
RET
DATO:
RET

COLUMNA:
CMP CL,78
JE CDATO
INC CL
RET
CDATO:
MOV CL,1
CALL FILA
RET

CUADRO:
MOV AX,0600H
MOV BH,07H
MOV CX,0000
MOV DX,184FH
INT 10H ;LIMPIA PANTALLA

MOV CL,79

LINEA1:
MOV DH,0
MOV DL,cl
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,205
INT 21H
LOOP LINEA1

MOV CL,23

COLUMNA1:
MOV DH,CL
MOV DL,0
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,186
INT 21H
LOOP COLUMNA1

MOV CL,23

COLUMNA2:
MOV DH,CL
MOV DL,79
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,186
INT 21H
LOOP COLUMNA2

MOV CL,79

LINEA2:
MOV DH,23
MOV DL,cl
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,205
INT 21H
LOOP LINEA2

MOV DH,0
MOV DL,0
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,201
INT 21H

MOV DH,0
MOV DL,79
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,187
INT 21H

MOV DH,23
MOV DL,0
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,200
INT 21H

MOV DH,23
MOV DL,79
MOV AH,02H
MOV BH,00
INT 10H
MOV AH,06H
MOV DL,188
INT 21H
RET

NOMBRES:
MOV DH,9
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE5
MOV AH,9H
INT 21H

MOV DH,10
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE
MOV AH,9H
INT 21H

MOV DH,11
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE1
MOV AH,9H
INT 21H

MOV DH,12
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE2
MOV AH,9H
INT 21H

MOV DH,13
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE3
MOV AH,9H
INT 21H

MOV DH,14
MOV DL,20
MOV AH,02H
MOV BH,00
INT 10H
MOV DX, OFFSET TABLE4
MOV AH,9H
INT 21H

MOV AX,0000
MAIN:
MOV AH,06H
MOV DL,0FFH
INT 21H
CMP AL,13
JNE MAIN
RET

end
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