Hoy vamos a ver la primera función auxiliar del juego
Ahorcado. La función que selecciona la palabra.
Esta función la hago transparente, para evitar interferencias
con el proceso. para ello salvo y recupero los registros que uso en pila.
El seudocódigo sería:
- Genera un número aleatorio
- Se queda con los 4 bits bajos, para que el
número no resulte mayor de 15.
- Lo multiplica por 2 y suma el offset de TABLA
para obtener una dirección válida en la tabla de punteros.
- Guarda esta dirección como palabra
seleccionada.
- Toma su longitud e inicializa la máscara
borrando lo que tuviera y colocando un cero al final para que sea imprimible
por puts.
El programa no es compilable si no incluimos las
cabeceras y las definiciones de segmentos, pero en este caso todo es parte de
un solo programa que colocaré completo en la parte 5/5.
NW_PAL
(c) José Angel Moneo Fdez
nw_pal proc near
push di
push si
random
and ax,0fh ; tomo numeros >16
shl ax,1 ;multiplico por dos
add ax,offset tabla ;indexo a la tabla de punteros a palabras
mov si,ax ;paso la dirección a 'SI' para indexar
mov ax,[si] ; recupero la dirección de la palabra de la tabla de punteros
mov pal_sel,ax ; almaceno la dirección de la palabra
mov si,ax ; paso esta dirección a si para indexar
mov di,offset mascara ; usa 'DI' como indexador de mascara
mov al,[si] ; leo el numero de letras de la palabra
ini:
mov byte ptr [di],'_' ;borra la mascara
inc di ; incrementamos puntero busqueda
dec al ; decremento el número de letras
jnz ini
mov byte ptr [di],0 ; pongo final de cadena
pop si
pop di
ret
nw_pal endp
Hola en que idoma esta exactamente soy nuevo eesto y me gustaria saber donde lo ensamblo
ResponderEliminarTienes el procedimiento de compilación en la pestaña superior "PROCEDIMIENTOS DE COMPILACIÓN" del blog
Eliminar