📄 anasm.asm
字号:
jmp near .end
.op_mov@seg_reg@var@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@seg_reg@reg
mov si,word[pointer_write]
shl dl,3
or dl,al
or dl,11000000b
mov byte[gs:si],8eh
inc si
mov byte[gs:si],dl
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_byte
mov dl,al
cmp dl,0xff
je near .op_mov@reg_var_byte@var
mov si,buffer_bef2
call translate_8bit_reg
cmp al,0xff
jne near .op_mov@reg_var_byte@reg
call format_numbers_8bit
jnc near .op_mov@reg_var_byte@num
mov di,op_byte
cmpsd
jne near .error_opcode
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne .op_mov@reg_var_byte@addr@var
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
shl dl,3
or dl,6
mov byte[gs:si],8ah
inc si
mov byte[gs:si],dl
inc si
add word[pointer_write],2
add word[act_offset],2
cmp bx,-1
je .op_mov@reg_var_byte@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_byte@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_byte@addr@var
mov si,word[pointer_write]
mov byte[gs:si],al
inc si
mov byte[gs:si],8ah
inc si
shl dl,3
or dl,ah
mov byte[gs:si],dl
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_byte@var
add si,4
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne .op_mov@reg_var_byte@addr@reg
call look4label
and al,al
jnz near .error_label
mov si,buffer_bef2
call translate_8bit_reg
cmp al,0xff
jne .op_mov@reg_var_byte@var@reg
call format_numbers_8bit
jc near .error_opcode
mov si,word[pointer_write]
mov word[gs:si],0x06c6
add si,2
add word[pointer_write],2
add word[act_offset],2
push ax
cmp bx,-1
je near .asm_set5@var_byte@no_offset
jmp near .asm_set5@var_byte@offset
.op_mov@reg_var_byte@addr@reg
mov bx,ax
mov si,buffer_bef2
call translate_8bit_reg
cmp al,0xff
je near .error_opcode
mov si,word[pointer_write]
mov byte[gs:si],bl
inc si
mov byte[gs:si],88h
inc si
shl al,3
or al,bh
mov byte[gs:si],al
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_byte@var@reg
shl al,3
or al,00000110b
mov si,word[pointer_write]
mov byte[gs:si],88h
inc si
mov byte[gs:si],al
inc si
add word[pointer_write],2
add word[act_offset],2
cmp bx,-1
je .op_mov@reg_var_byte@var@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_byte@var@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_byte@num
mov si,word[pointer_write]
add dl,0xb0
mov byte[gs:si],dl
inc si
mov byte[gs:si],al
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_byte@reg
mov si,word[pointer_write]
shl dl,3
or dl,al
or dl,11000000b
mov byte[gs:si],8ah
inc si
mov byte[gs:si],dl
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word
mov dl,al
mov si,buffer_bef2
call translate_seg_reg
cmp al,0xff
jne near .op_mov@reg_var_word@seg
mov si,buffer_bef1
cmp dl,0xff
je near .op_mov@reg_var_word@var
mov si,buffer_bef2
call translate_16bit_reg
cmp al,0xff
jne near .op_mov@reg_var_word@reg
call format_numbers_16bit
jnc near .op_mov@reg_var_word@num
push si
mov di,op_word
cmpsd
pop si
jne near .op_mov@reg_var_word@var_num
add si,4
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne near .op_mov@reg_var_word@addr@var
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
shl dl,3
or dl,6
mov byte[gs:si],8bh
inc si
mov byte[gs:si],dl
inc si
add word[pointer_write],2
add word[act_offset],2
cmp bx,-1
je .op_mov@reg_var_word@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_word@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word@var_num
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
add dl,0xb8
mov byte[gs:si],dl
inc si
inc word[pointer_write]
inc word[act_offset]
cmp bx,-1
je .op_mov@reg_var_word@var_num@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_word@var_num@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word@addr@var
mov si,word[pointer_write]
mov byte[gs:si],al
inc si
mov byte[gs:si],8bh
inc si
shl dl,3
or dl,ah
mov byte[gs:si],dl
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_word@var
add si,4
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne .op_mov@reg_var_word@addr
call look4label
and al,al
jnz near .error_label
mov si,buffer_bef2
call translate_16bit_reg
cmp al,0xff
jne .op_mov@reg_var_word@var@reg
call format_numbers_16bit
jc near .error_opcode
mov si,word[pointer_write]
mov word[gs:si],0x06c7
add si,2
add word[pointer_write],2
add word[act_offset],2
push ax
cmp bx,-1
je near .asm_set5@var_word@no_offset
jmp near .asm_set5@var_word@offset
.op_mov@reg_var_word@addr
mov bx,ax
mov si,buffer_bef2
call translate_16bit_reg
cmp al,0xff
je near .error_opcode
mov si,word[pointer_write]
mov byte[gs:si],bl
inc si
mov byte[gs:si],89h
inc si
shl al,3
or al,bh
mov byte[gs:si],al
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_word@var@reg
shl al,3
or al,00000110b
mov si,word[pointer_write]
mov byte[gs:si],89h
inc si
mov byte[gs:si],al
inc si
add word[pointer_write],2
add word[act_offset],2
cmp bx,-1
je .op_mov@reg_var_word@reg@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_word@reg@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word@num
mov si,word[pointer_write]
add dl,0xb8
mov byte[gs:si],dl
inc si
mov word[gs:si],ax
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_word@reg
mov si,word[pointer_write]
shl dl,3
or dl,al
or dl,11000000b
mov byte[gs:si],8bh
inc si
mov byte[gs:si],dl
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word@seg
cmp dl,0xff
jne .op_mov@reg_var_word@seg_reg
mov dl,al
mov si,buffer_bef1
mov di,op_word
cmpsd
jne near .error_opcode
call test_clips
and al,al
jnz near .error_no_clips
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
shl dl,3
or dl,6
mov byte[gs:si],8ch
inc si
mov byte[gs:si],dl
inc si
add word[pointer_write],2
add word[act_offset],2
cmp bx,-1
je .op_mov@reg_var_word@seg@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_word@seg@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_word@seg_reg
shl al,3
or al,dl
or al,11000000b
mov si,word[pointer_write]
mov byte[gs:si],8ch
inc si
mov byte[gs:si],al
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_dword
mov dl,al
cmp dl,0xff
je near .op_mov@reg_var_dword@var
mov si,buffer_bef2
call translate_32bit_reg
cmp al,0xff
jne near .op_mov@reg_var_dword@reg
call format_numbers_32bit
jnc near .op_mov@reg_var_dword@num
push si
mov di,reg_dr
cmpsw
pop si
je near .op_mov@reg_var_dword@reg_dr
push si
mov di,reg_cr
cmpsw
pop si
je near .op_mov@reg_var_dword@reg_cr
mov di,op_dword
mov cx,5
rep cmpsb
jne near .error_opcode
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne .op_mov@reg_var_dword@addr@var
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
shl dl,3
or dl,6
mov word[gs:si],0x8b66
add si,2
mov byte[gs:si],dl
inc si
add word[pointer_write],3
add word[act_offset],3
cmp bx,-1
je .op_mov@reg_var_dword@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_dword@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_dword@addr@var
mov si,word[pointer_write]
mov byte[gs:si],al
inc si
mov word[gs:si],0x8b66
add si,2
shl dl,3
or dl,ah
mov byte[gs:si],dl
add word[pointer_write],4
add word[act_offset],4
jmp near .end
.op_mov@reg_var_dword@reg_dr
add si,2
lodsb
and al,al
jz near .error_opcode
cmp al,'7'
jg near .error_opcode
cmp al,'0'
jl near .error_opcode
push ax
lodsb
and al,al
pop ax
jnz near .error_opcode
call ascii_char2hex
shl al,3
or al,dl
or al,11000000b
mov si,word[pointer_write]
mov word[gs:si],0x210f
add si,2
mov byte[gs:si],al
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_dword@reg_cr
add si,2
lodsb
and al,al
jz near .error_opcode
cmp al,'4'
jg near .error_opcode
cmp al,'0'
jl near .error_opcode
push ax
lodsb
and al,al
pop ax
jnz near .error_opcode
call ascii_char2hex
shl al,3
or al,dl
or al,11000000b
mov si,word[pointer_write]
mov word[gs:si],0x200f
add si,2
mov byte[gs:si],al
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_mov@reg_var_dword@var
add si,5
call test_clips
and al,al
jnz near .error_no_clips
call format_address_16bit
cmp ax,0xffff
jne .op_mov@reg_var_dword@addr
call look4label
and al,al
jnz near .error_label
mov si,buffer_bef2
call translate_32bit_reg
cmp al,0xff
jne .op_mov@reg_var_dword@var@reg
call format_numbers_32bit
jc near .error_opcode
mov si,word[pointer_write]
mov byte[gs:si],66h
inc si
mov word[gs:si],0x06c7
add si,2
add word[pointer_write],3
add word[act_offset],3
push eax
cmp bx,-1
je near .asm_set5@var_dword@no_offset
jmp near .asm_set5@var_dword@offset
.op_mov@reg_var_dword@addr
mov bx,ax
mov si,buffer_bef2
call translate_32bit_reg
cmp al,0xff
je near .error_opcode
mov si,word[pointer_write]
mov byte[gs:si],bl
inc si
mov word[gs:si],0x8966
add si,2
shl al,3
or al,bh
mov byte[gs:si],al
add word[pointer_write],4
add word[act_offset],4
jmp near .end
.op_mov@reg_var_dword@var@reg
shl al,3
or al,00000110b
mov si,word[pointer_write]
mov word[gs:si],0x8966
add si,2
mov byte[gs:si],al
inc si
add word[pointer_write],3
add word[act_offset],3
cmp bx,-1
je .op_mov@reg_var_dword@var@no_offset
call .asm@offset
jmp near .end
.op_mov@reg_var_dword@var@no_offset
mov al,1
call add_offset2offset_table
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_mov@reg_var_dword@num
mov si,word[pointer_write]
add dl,0xb8
mov dh,0x66
xchg dl,dh
mov word[gs:si],dx
add si,2
mov dword[gs:si],eax
add word[pointer_write],6
add word[act_offset],6
jmp near .end
.op_mov@reg_var_dword@reg
mov si,word[pointer_write]
shl dl,3
or dl,al
or dl,11000000b
mov word[gs:si],0x8b66
add si,2
mov byte[gs:si],dl
add word[pointer_write],3
add word[act_offset],3
jmp near .end
.op_jmp
mov di,op_jmp
call string_cmp
and ax,ax
jnz near .op_call
mov si,word[pointer_read]
mov di,buffer_bef1
call parse_line
add word[pointer_read],cx
mov si,word[pointer_read]
mov di,buffer_bef2
call parse_line
add word[pointer_read],cx
mov si,buffer_bef2
push si
mov si,buffer_bef1
mov di,op_near
call string_cmp
pop si
and ax,ax
jz .op_jmp@near
push si
mov si,buffer_bef1
mov di,op_short
call string_cmp
pop si
and ax,ax
jz .op_jmp@short
mov si,buffer_bef1
.op_jmp@near
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
mov byte[gs:si],0xe9
inc si
inc word[pointer_write]
inc word[act_offset]
cmp bx,-1
je near .asm@no_offset@jmp
mov ax,word[act_offset]
add ax,2
sub bx,ax
mov word[gs:si],bx
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_jmp@short
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
mov byte[gs:si],0xeb
inc si
inc word[pointer_write]
inc word[act_offset]
cmp bx,-1
je .op_jmp@short@no_offset
mov ax,word[act_offset]
inc ax
sub bx,ax
cmp bx,-128
jl near .error_short_jmp
mov byte[gs:si],bl
inc word[pointer_write]
inc word[act_offset]
jmp near .end
.op_jmp@short@no_offset
mov al,3
call add_offset2offset_table
inc word[pointer_write]
inc word[act_offset]
jmp near .end
.op_jmp@reg16bit
.op_jmp@reg32bit
jmp near .end
.op_call
mov di,op_call
call string_cmp
and ax,ax
jnz near .op_arpl
mov si,word[pointer_read]
mov di,buffer_bef1
call parse_line
add word[pointer_read],cx
mov si,buffer_bef1
call translate_16bit_reg
cmp al,0xff
jne .op_call@reg16bit
call translate_32bit_reg
cmp al,0xff
jne .op_call@reg32bit
call look4label
and al,al
jnz near .error_label
mov si,word[pointer_write]
mov byte[gs:si],0xe8
inc si
inc word[pointer_write]
inc word[act_offset]
cmp bx,-1
je near .asm@no_offset@jmp
mov ax,word[act_offset]
add ax,2
sub bx,ax
mov word[gs:si],bx
add word[pointer_write],2
add word[act_offset],2
jmp near .end
.op_call@reg16bit
.op_call@reg32bit
jmp near .end
.op_arpl
mov di,op_arpl
call string_cmp
and ax,ax
jnz near .op_enter
mov si,word[pointer_read]
mov di,buffer_bef1
call parse_line
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -