首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将as86转换为fasm

将as86转换为fasm
EN

Stack Overflow用户
提问于 2013-01-19 21:35:06
回答 2查看 631关注 0票数 1

我正在尝试将as86的这个程序集转换为fasm。我有三个问题:

1)为什么seg es给出了一个error: illegal instruction.,这在16位中是无效的?

( 2) mov byte [0],0x41(FASM语法)与mov [0],#0x41(as86语法)完全等价吗?如果不是,你能给我看看相当于什么吗?

( 3)为什么entry start在FASM中出现错误?

以下是程序集代码:

as86

代码语言:javascript
复制
entry start
start:
       mov ax,#0xb800
       mov es,ax
       seg es
       mov [0],#0x41
       seg es
       mov [1],#0x1f
 loop1: jmp loop1

我写的法西斯版本:

FASM

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-19 22:52:33

正确的语法是:

代码语言:javascript
复制
mov byte [es:0],0x41    ;I'm not sure if this instruction is supported under 16 bit CPU

代码语言:javascript
复制
push bx 
mov  bx,0   ;you can use also: xor  bx, bx
mov  byte [es:bx],0x41
pop  bx
票数 1
EN

Stack Overflow用户

发布于 2013-01-19 21:43:41

seg es看起来很可疑。尝试以下几个方面:

代码语言:javascript
复制
mov byte ptr es:[0],0x41
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14419132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档