39 lines
813 B
NASM
39 lines
813 B
NASM
bits 64
|
|
|
|
SECTION .data
|
|
; empty
|
|
|
|
SECTION .text
|
|
global _start
|
|
_start:
|
|
%include "header.asm.inc"
|
|
|
|
; negate: reverse two's complement
|
|
mov eax, -1 ; ---> eax = 0xFFFFFFFF
|
|
neg eax ; ---> eax = 0x00000001
|
|
|
|
mov eax, 3 ; ---> eax = 0x00000003
|
|
neg eax ; ---> eax = 0xFFFFFFFD
|
|
|
|
; not: flip all bits
|
|
mov eax, -1 ; ---> eax = 0xFFFFFFFF
|
|
not eax ; ---> eax = 0x00000000
|
|
|
|
mov eax, 3 ; ---> eax = 0x00000003
|
|
not eax ; ---> eax = 0xFFFFFFFC
|
|
|
|
; challenge
|
|
mov eax, 0 ; ---> eax = 0x00000000
|
|
not eax
|
|
neg eax
|
|
not eax
|
|
neg eax
|
|
not eax
|
|
neg eax
|
|
not eax
|
|
neg eax
|
|
not eax
|
|
neg eax
|
|
|
|
%include "sysexit.asm.inc"
|