汇编寄存器中 ax 和[ax] 什么区别?

 我来答
百度网友8b2795b
高粉答主

2021-01-05 · 说的都是干货,快来关注
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:17.3万
展开全部

1、意义不同

AX是指令中可以用的寄存器名表达式。[ax]常用于存放算术、逻辑运算中的操作数或结果。所有的I/O指令都要使用累加器与外设接口传递数据。

2、用法不同

ax寄存器使用最频繁,常用来存放参与运算的数据或是存储运算的结果。ax寄存器为16字节,可以灵活处理8位数据。

3、操作不同

操作ax的时候就是直接用ax中的值,[ax]是将ax中的值当作一个地址,然后将这个地址对应该内存中的值来操作。比如mov bx,ax是将ax中的值给bx, mov bx,[ax],是将内存中ds段ax这个偏移地址中的那个值给bx。

扩展资料:

通用寄存器组包括AX、BX、CX、DX4个16位寄存器,用以存放16位数据或地址。也可用作8位寄存器。用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。

只能存放8位数据,不能存放地址。它们分别是AX、BX、CX、DX的高八位和低八位。若AX=1234H,则AH=12H,AL=34H。通用寄存器通用性强,对任何指令,它们具有相同的功能。

为了缩短指令代码的长度,在8086中,某些通用寄存器用作专门用途。例如,串指令中必须用CX寄存器作为计数寄存器,存放串的长度,这样在串操作指令中不必给定CX的寄存器号,缩短了串操作指令代码的长度。

参考资料:百度百科-寄存器

LifeMrBo
2021-01-02 · 朝朝辞暮,尔尔辞晚,碎碎念安
LifeMrBo
采纳数:5 获赞数:2598

向TA提问 私信TA
展开全部

AX是指令中可以用的寄存器名表达式。

[ax]常用于存放算术、逻辑运算中的操作数或结果。所有的I/O指令都要使用累加器与外设接口传递数据。

ax寄存器使用最频繁,常用来存放参与运算的数据或是存储运算的结果。ax寄存器为16字节,可以灵活处理8位数据。

扩展资料:

通用数据处理器通常用于处理数据,类别有:AX 累加寄存器。所有外部设备的输入输出指令只能使用AL或AX做为数据寄存器。BX 基址寄存器。可以用作数据寄存器,访问存储器时,可以存放被读写的存储单元的地址。是具有双重功能的寄存器。

CX 计数寄存器。可以用作数据寄存器,在循环操作、移位操作时用作寄存器。DX 数据寄存器。在乘除法中作为数据累加器,在输入输出操作中存放端口的地址。SP 堆栈指针寄存器。存放栈顶的偏移地址,供堆栈操作使用。

参考资料:百度百科-寄存器

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
link_rules
推荐于2017-12-16
知道答主
回答量:2
采纳率:0%
帮助的人:5.8万
展开全部
操作ax的时候就是直接用ax中的值,[ax]是将ax中的值当作一个地址,然后将这个地址对应该内存中的值来操作。比如mov bx,ax是将ax中的值给bx, mov bx,[ax],是将内存中ds段ax这个偏移地址中的那个值给bx,不知道我说的你能不能明白,
追问
谢谢啊,再问一下,如何将寄存器中的值在屏幕上输出呢?谢谢啦
追答
16位汇编好像是将数据写入0b800开始的内存就可以显示,我是看王爽的那本《汇编语言》学到的,还有就是调用其他的库,来实现比如,Intel汇编语言程序设计中有一个irvine32的库,里面就有一个DumpRegs过程,可以显示寄存器的值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longerpop
2011-10-16
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
[ax]中ax是个地址值,[ax]就是ax所在地址的值 ;ax就是直接操作数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duguyuyun
2011-10-16
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
一个是ax的内容,一个是把ax的内容作为内存地址,读取内存中的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式