Está en la página 1de 2

;Compilar: nasm -f elf juego_dados.

asm
;Enlazar: ld -m elf_i386 -s -o juego_dados juego_dados.o io.o
;Ejecutar: ./juego_dados

%include "io.mac"

section .data
entrada: db "Juego de dados al azar", 10,0
nro: db "----------- Empezando ------------------", 0
nro1: db "Ingresa un monto para apostar:", 0
nro2: db "El numero del 1er dado es ", 0
nro3: db "El numero del 2do dado es ", 0
nro4: db "El resultado es ", 0
Perder: db "Has perdido", 0, 10
Ganar: db "Has ganado", 0, 10
pregunta: db "Quieres seguir jugando? si=1 o no=2", 0, 10
d1: dw 0
d2: dw 0

section .text
global _start

_start:
PutStr entrada
PutStr nro
nwln
PutStr nro1
GetInt cx
nwln
jmp gen_1

gen_1:
mov eax, 355
mov ebx, d1
mov ecx, 1
mov edx, 0
int 80h
mov ax, [d1]
PutInt ax
nwln
cmp ax,6
ja limitador_1
jmp contador

gen_2:
mov eax, 355
mov ebx, d2
mov ecx, 1
mov edx, 0
int 80h
mov bx, [d2]
PutInt bx
nwln
cmp ax,6
ja limitador_2
jmp contador

dado:
cmp ax,0
jz gen_1

segdado:
cmp bx,0
jz gen_2
jmp contador

limitador_1:
mov cx, 249
sub ax, cx
cmp ax, 7
jb contador
loop limitador_1

limitador_2:
mov cx, 249
sub bx, cx
cmp bx, 7
jb contador
loop limitador_2

dados:
cmp bx, 0
jz dado
jnz segdado

contador:
add ax,bx
cmp ax, 7
jae Menos
jb Mas

Menos:
PutStr Perder
nwln
jmp continuar

continuar:
PutStr pregunta
GetInt bx
cmp bx,1
je dado
ja fin

Mas:
PutStr Ganar
imul ax,2
PutInt ax
jmp continuar

fin:
nwln
mov ax,1
int 80h

También podría gustarte