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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编寄存器中 ax 和[ax] 啥区别?相关的知识,希望对你有一定的参考价值。

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的寄存器号,缩短了串操作指令代码的长度。

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

参考技术A

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

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

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

扩展资料:

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

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

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

参考技术B 操作ax的时候就是直接用ax中的值,[ax]是将ax中的值当作一个地址,然后将这个地址对应该内存中的值来操作。比如mov bx,ax是将ax中的值给bx, mov bx,[ax],是将内存中ds段ax这个偏移地址中的那个值给bx,不知道我说的你能不能明白,追问

谢谢啊,再问一下,如何将寄存器中的值在屏幕上输出呢?谢谢啦

追答

16位汇编好像是将数据写入0b800开始的内存就可以显示,我是看王爽的那本《汇编语言》学到的,还有就是调用其他的库,来实现比如,Intel汇编语言程序设计中有一个irvine32的库,里面就有一个DumpRegs过程,可以显示寄存器的值

本回答被提问者采纳
参考技术C 对AX进行操作时操作的是AX寄存器里面的值 对[AX]进行操作的时候 是将AX寄存器里面的值当做偏移地址 对DS:[AX]这个内存单元里面的值进行操作 参考技术D 一个是ax的内容,一个是把ax的内容作为内存地址,读取内存中的内容

汇编语言 (王爽 第三版)第二章:寄存器

(1)写出每条汇编指令执行后相关寄存器中的值(注意区别是mov还是add,操作对象是16位寄存器还是8位寄存器)

mov ax,62627    AX=F4A3H

mov ah,31H       AX=31A3H

mov al,23H        AX=3123H

add ax,ax          AX=6246H  (因为操作的对象是16位寄存器所以除了最高位都存在进位)

mov bx,826CH   BX=826CH

mov cx,ax          CX=6246H

mov ax,bx          AX=826CH

mov ax,bx          AX=04D8H

mov al,bh           AX=0482H

mov ah,bl           AX=6C82H

add ah,ah           AX=D882H

add al,6             AX=D888H

add al,al       AX=D810H

mov ax,cx          AX=6246H 

 

(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方

mov ax 2

add ax ax

add ax ax

add ax ax

以上是关于汇编寄存器中 ax 和[ax] 啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言 (王爽 第三版)第二章:寄存器

汇编语言中 寄存器有啥作用 怎么用

汇编:输出寄存器AX中的内容

如何用汇编语言读取内存值

麻烦大家给我介绍一下汇编指令mov的用法吧

汇编 寄存器