Ensamblador - Check Box en ensamblador

   
Vista:

Check Box en ensamblador

Publicado por fernando (2 intervenciones) el 05/08/2008 21:01:09
Alguien puede decirme como programar los check box en ensamblador y les estaria muy agradecido
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:Check Box en ensamblador

Publicado por MSH (121 intervenciones) el 07/08/2008 23:54:03
No se si te pueda ayudar esto

.model small
.stack 64
;-----------------------------------------------------------------------------------------------------------------------------------------------------------
.data

CR equ 13
LF equ 10
row db 00
col db 00
char db ?

menu db 0c9h, 21 dup (0cdh),0bbh,CR,LF
db 0bah,'*********************',0bah,CR,LF
db 0bah,'* Selecciona: *',0bah,CR,LF
db 0bah,'*********************',0bah,CR,LF
db 0bah,'[ ] Opcion 1 ',0bah,CR,LF
db 0bah,'[ ] Opcion 2 ',0bah,CR,LF
db 0bah,'[ ] Opcion 3 ',0bah,CR,LF
db 0bah,'[ ] Opcion 4 ',0bah,CR,LF
db 0bah,'[ ] Opcion 5 ',0bah,CR,LF
db 0c8h, 21 dup(0cdh),0bch,'$'


prompt db 'Selec= Ins./ Desel = Del. / Enter=OK /ESC=Salir','$'
respon db 'Seleccionaste las opciones: ',CR,LF,'$'
optio db 5 dup (' '),'$'
cont db 00 ;contador de opciones
;-----------------------------------------------------------------------------------------------------------------------------------------------------------
.code

inicio: mov ax,@data
mov ds,ax
push ds
pop es

call clean
call poscur
lea dx,menu
call messa
mov row,24
mov col,15
call poscur
lea dx,prompt
call messa

;------inicia el control-------------------------------------------------------------------------------
mov row,04
mov col,02
call poscur

keys:
mov ah,10h
int 16h
cmp ah,01h ;ESC?
je salir ;salimos
cmp ah,52h ;Insert?
je select ;selecciona opcion
cmp ah,53h ;Delete?
je deselect ;deselecciona
cmp ah,48h ;flecha arriba?
je upers
cmp ah,50h ;flecha abajo?
je downpers
cmp ah,1ch ;enter?
je opciones ;muestra opciones seleccionadas
jmp keys

upers:
dec row
call poscur
jmp keys

downpers:
inc row
call poscur
jmp keys

select:
call printx
jmp keys

deselect:
call prints
jmp keys

opciones:
call options
mov ah,08h
int 21h
salir:
call clean
mov row,00
mov col,00
call poscur
mov ax,4c00h
int 21h

;......................................
clean proc
mov ax,0600h
mov bh,71h
mov cx,0000h
mov dx,314fh
int 10h
ret
clean endp
;......................................
poscur proc
mov ah,02h
mov bh,0
mov dh,row
mov dl,col
int 10h
ret
poscur endp
;......................................
messa proc
mov ah,09h
int 21h
ret
messa endp
;......................................
printx proc
mov ah,09h
mov al,'X'
mov bh,0
mov bl,71h
mov cx,01
int 10h
ret
printx endp
;......................................
prints proc
mov ah,09h
mov al,' '
mov bh,0
mov bl,71h
mov cx,01
int 10h
ret
prints endp
;......................................
printc proc
mov ah,09h
mov al,char
mov bh,0
mov bl,71h
mov cx,01
int 10h
ret
printc endp
;......................................
scancar proc
mov ah,08h
mov bh,00
int 10h
ret
scancar endp
;......................................
options proc
lea si,optio
mov row,04
mov col,02

uno:
call poscur
call scancar
cmp al,'X'
je opa1

dos:
inc row
call poscur
call scancar
cmp al,'X'
je opa2

tres:
inc row
call poscur
call scancar
cmp al,'X'
je opa3

cuatro:
inc row
call poscur
call scancar
cmp al,'X'
je opa4

cinco:
inc row
call poscur
call scancar
cmp al,'X'
je opa5

jmp nosele

opa1:
mov al,'1'
mov [si],al
inc si
inc cont
jmp dos

opa2:
mov al,'2'
mov [si],al
inc si
inc cont
jmp tres

opa3:
mov al,'3'
mov [si],al
inc si
jmp cuatro

opa4:
mov al,'4'
mov [si],al
inc si
inc cont
jmp cinco

opa5:
mov al,'5'
mov [si],al
inc cont
jmp siga
nosele:
cmp cont,00
je Nohay
jmp siga
Nohay:
mov al,'N'
mov [si],al

siga:
mov row,12
mov col,00
call poscur
lea dx,respon
call messa
lea dx,optio
call messa
lea dx,prompt+38
call messa
ret
options endp
end inicio
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