我正在尝试将as86的这个程序集转换为fasm。我有三个问题:
1)为什么seg es给出了一个error: illegal instruction.,这在16位中是无效的?
( 2) mov byte [0],0x41(FASM语法)与mov [0],#0x41(as86语法)完全等价吗?如果不是,你能给我看看相当于什么吗?
( 3)为什么entry start在FASM中出现错误?
以下是程序集代码:
as86
entry start
start:
mov ax,#0xb800
mov es,ax
seg es
mov [0],#0x41
seg es
mov [1],#0x1f
loop1: jmp loop1我写的法西斯版本:
FASM
use16
format binary
start:
mov ax,0xb800
mov es,ax
seg es
mov byte [0],0x41
seg es
mov byte [1],0x1f
loop1: jmp loop1发布于 2013-01-19 22:52:33
正确的语法是:
mov byte [es:0],0x41 ;I'm not sure if this instruction is supported under 16 bit CPU或
push bx
mov bx,0 ;you can use also: xor bx, bx
mov byte [es:bx],0x41
pop bx发布于 2013-01-19 21:43:41
seg es看起来很可疑。尝试以下几个方面:
mov byte ptr es:[0],0x41https://stackoverflow.com/questions/14419132
复制相似问题