汇编语言语法
时间:2011-04-04
来源:互联网
作业需要,现在在看汇编,对于内存寻址有一点疑问:
我申明了一个数据区域
buffer dw 500
现在我要将一些数据放入其中,用dx寄存器来作为指针,就像数组那样buffer[dx],来存取值(我只知道可以用立即数来指示,比如mov [buffer+1],ax,但使用寄存器怎么写),请问具体语法是什么,我用的是NASM编译器。
我申明了一个数据区域
buffer dw 500
现在我要将一些数据放入其中,用dx寄存器来作为指针,就像数组那样buffer[dx],来存取值(我只知道可以用立即数来指示,比如mov [buffer+1],ax,但使用寄存器怎么写),请问具体语法是什么,我用的是NASM编译器。
作者: jiag8 发布时间: 2011-04-04
网上有nasm的中文手册下载。
作者: masmaster 发布时间: 2011-04-04
刚看了手册
下面两条语句:
mov word [buffer+2],ax
mov word [buffer+dx],ax
只有第一句编译通过,第二局报错:invalid effective address
下面是从手册摘录的:
NASM因为关注简洁性,同样不支持MASM和它的衍生产品支持的的混合语法,比如像
:'mov ax, table[bx]',这里,一个中括号外的部分加上括号内的一个部分引用一个
内存地址,上面代码的正确语法是:'mov ax,[table+bx] 。同样,'mov ax,es:[di]'
也是错误的,正确的应该是'mov ax,[es:di]'。
下面两条语句:
mov word [buffer+2],ax
mov word [buffer+dx],ax
只有第一句编译通过,第二局报错:invalid effective address
下面是从手册摘录的:
NASM因为关注简洁性,同样不支持MASM和它的衍生产品支持的的混合语法,比如像
:'mov ax, table[bx]',这里,一个中括号外的部分加上括号内的一个部分引用一个
内存地址,上面代码的正确语法是:'mov ax,[table+bx] 。同样,'mov ax,es:[di]'
也是错误的,正确的应该是'mov ax,[es:di]'。
作者: jiag8 发布时间: 2011-04-04
唉呀呀 为什么上面这个例子里我把
dx换成bx就可以了呢?
mov word [buffer+bx],ax;编译成功
谁来解释一下阿!
dx换成bx就可以了呢?
mov word [buffer+bx],ax;编译成功
谁来解释一下阿!
作者: jiag8 发布时间: 2011-04-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28