flag_z = (registro < 64)
De la manera corresta es:
Código: Seleccionar todo
flag_z = ((registro AND 64) = 0)

Código: Seleccionar todo
flag_z = ((registro AND 64) = 0)
Namek escribió:Ya se que no se puede generalizar, pero para el bit 7 te ahorras código...
Código: Seleccionar todo
FUNCTION (registro, bit)
mask = (2 EXP bit)
result = registro AND mask
flag_z = (result = 0)
END FUNCTION
Namek escribió:Yo tengo el problema de que cuando intento hacer PRINT de un número mayor de 65535 me saca el error "6 Number too big, 0:1". Supongo que sera algun bug en la suma/resta de 16 bits...
Código: Seleccionar todo
; PROGRAMA PARA PROBAR LAS TOTALIDAD DE LAS INSTRUCCIONES Z80
; Se asumen los siguientes valores:
; AF=0x0123 AF'=0x3210
; BC=0x4567 BC'=0x7654
; DE=0x89AB DE'=0xBA98
; HL=0xCDEF HL'=0xFEDC
nop
ld bc, 0xFEDC
ld (bc), a
inc bc
inc b
dec b
ld b, 0xBA
rlca
ex af, af'
add hl, bc
ld a, (bc)
dec bc
inc c
dec c
ld c, 0x98
p01:
rrca
djnz p01
ld de, 0x7654
ld (de), a
inc de
inc d
dec d
ld d, 0x32
rla
jr p02
p02:
add hl, de
ld a, (de)
dec de
inc e
dec e
ld e, 0x10
rra
etc
etc
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados