社区
汇编语言
帖子详情
为什么[BX]的操作数是在存储器中
OICQshenshi
2012-02-13 10:14:53
XOR [BX],[BX]
BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?
还有
AND AX,[CX]
为何寄存器间接寻址方式不允许用CX呢?
...全文
304
8
打赏
收藏
为什么[BX]的操作数是在存储器中
XOR [BX],[BX] BX不是寄存器吗,为什么教材说[BX]是在存储器中呢? 还有 AND AX,[CX] 为何寄存器间接寻址方式不允许用CX呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
masmaster
2012-02-14
打赏
举报
回复
假如BX=1000H,那么,[BX]表示的就是起始地址为DS段偏移地址为1000H的内容。所谓指针就是地址。在80386或更高的处理器里,就支持了[AX],[CX]这样的寻址了,在16位汇编里,这是不允许的。
「已注销」
2012-02-14
打赏
举报
回复
好了,楼主我懂你的意思,那是指针问题。寄存器间接寻址
gsy999
2012-02-14
打赏
举报
回复
[Quote=引用 2 楼 oicqshenshi 的回复:]
引用 1 楼 gsy999 的回复:
引用楼主 oicqshenshi 的回复:
Assembly code
XOR [BX],[BX]
BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?
没有XOR [BX],[BX]指令
知道这句是错误的,主要问[BX]为何是在存储器中
[/Quote]
不存在的指令如何能回答出正确的答案.
如果非要有个结果,那可能的答案是:指令的设计者就是这样设计的.
hztj2005
2012-02-13
打赏
举报
回复
编译器就这个约定的。
如果你写一个编译器,改为(BX)也行。
为何寄存器间接寻址方式不允许用CX呢?
cpu中没有这中电路。
能写程序-会种庄稼
2012-02-13
打赏
举报
回复
这个应该看汇编器吧, 看指定版本汇编器对不同寻址方式在语法上如何表示,结合汇编器的说明应该能明白。
我记得用masm的时候寄存器加上方括号就表示寄存器内的值作为一个指针,方括号就相当于指针解引用。
被我误导了别怪我
火雲邪神
2012-02-13
打赏
举报
回复
xor the memory
OICQshenshi
2012-02-13
打赏
举报
回复
[Quote=引用 1 楼 gsy999 的回复:]
引用楼主 oicqshenshi 的回复:
Assembly code
XOR [BX],[BX]
BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?
没有XOR [BX],[BX]指令
[/Quote]
知道这句是错误的,主要问[BX]为何是在存储器中
gsy999
2012-02-13
打赏
举报
回复
[Quote=引用楼主 oicqshenshi 的回复:]
Assembly code
XOR [BX],[BX]
BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?
[/Quote]
没有XOR [BX],[BX]指令
8086汇编指令详解
最牛的汇编语言 最好的编码
【汇编】源
操作数
寻址方式
MOV,AX,
BX
:
BX
是源
操作数
,AX是目的
操作数
以下均针对源
操作数
来分类 1.立即寻址 MOV AX,100 2.直接寻址 MOV AX,[100] 3.寄存器寻址
操作数
在寄存器
中
MOV AX,
BX
4.寄存器间接寻址
操作数
在
存储器
中
,有效寄存器为:
BX
,SI,DI,BP MOV AX,[
BX
] 5.寄存器相对寻址
操作数
在
存储器
中
,格式为基址
BX
BP或者变址DI SI+偏移量 比如:MOV AX,[
BX
+100] 6.基址加变址存储方式
操作数
在
存储器
中
,格式
微机原理与接口技术——
操作数
与寻址方式
操作数
在8086汇编语言
中
,
操作数
分为三种类型。分别为立即数、寄存器
操作数
以及
存储器
操作数
。 立即数
操作数
属于指令
中
的数,即直接在指令
中
给出,同时直接保存在代码区,例如指令MOV AL,2345。2345(H)就属于立即数,应该注意,立即数只能用作源
操作数
,不可用做目的
操作数
,可类比于C语言
中
不能给常量赋值的语法规定。 寄存器
操作数
属于CPU
中
的数,存放在四个通用寄存器AX、
BX
、CX、DX,...
微机原理
中
操作数
位置总结
立即数:立即数在CS里。CS在
存储器
里,但和
存储器
操作数
有本质的区别,但是不属于
存储器
数的一种。本质上是立即数寻址而不是
存储器
寻址。寄存器数:在cup内部 (AX,
BX
,CX,DX属于EU部件)
存储器
操作数
:1看他有没有段超越前缀,超越到了什么段就是什么段例 :MOV AX,ES:[1000H]那数据就在附加段2.如果是[BP],数据就在堆栈段如果不是[BP],数据就在数据段,也就是在[
BX
] [SI] [DI]的情况下什么是
存储器
数?第一带
中
括号 []第二是一个变量名例子:MOV AL,BUF ;B
8086
中
的
操作数
指令
中
的
操作数
指令的基本形式为“操作码 目标
操作数
源
操作数
”,其
中
操作码代表了如何对数据进行操作,目标
操作数
和源
操作数
分别代表了数据计算之后的归宿和数据的获取处。
操作数
本身是个数据,但是数据的性质(这个数据象征的是数据还是地址)要由操作码说了算。 立即数
操作数
立即数
操作数
表征着参加
操作数
据的本身,例如“mov AX 8080H”
中
8080H代表了立即数,将8080H拷贝至AX寄存器
中
。 由于立即数
操作数
表征着被
操作数
据本身,即
操作数
并不用从其他地方获取,因此立即数
操作数
和操作码一起被存放在存储
汇编语言
21,497
社区成员
41,616
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章