2023-11-16 23:19:36 -05:00

34 lines
402 B
NASM

bits 16
swap:
push bx
movzx bx,dl
mov dl,[cs:bx+(table-$$)]
pop bx
.jmp: jmp 0:0
nop
nop
install:
;; DS = CS, ES = 0
mov edi,[es:si+4*0x13]
mov [swap.jmp+1],edi
mov di,[es:0x413]
dec di
mov [es:0x413],di
shl edi,16+6
mov [es:si+4*0x13],edi
shr edi,16
mov es,di
xor di,di
rep movsd
mov si,0
mov di,0
mov ds,si
mov es,di
mov ecx,0
mov esi,0
mov edi,0
jmp 0:0
align 16
table: