汇编寄存器中 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的寄存器号,缩短了串操作指令代码的长度。
参考资料:百度百科-寄存器
AX是指令中可以用的寄存器名表达式。
[ax]常用于存放算术、逻辑运算中的操作数或结果。所有的I/O指令都要使用累加器与外设接口传递数据。
ax寄存器使用最频繁,常用来存放参与运算的数据或是存储运算的结果。ax寄存器为16字节,可以灵活处理8位数据。
扩展资料:
通用数据处理器通常用于处理数据,类别有:AX 累加寄存器。所有外部设备的输入输出指令只能使用AL或AX做为数据寄存器。BX 基址寄存器。可以用作数据寄存器,访问存储器时,可以存放被读写的存储单元的地址。是具有双重功能的寄存器。
CX 计数寄存器。可以用作数据寄存器,在循环操作、移位操作时用作寄存器。DX 数据寄存器。在乘除法中作为数据累加器,在输入输出操作中存放端口的地址。SP 堆栈指针寄存器。存放栈顶的偏移地址,供堆栈操作使用。
参考资料:百度百科-寄存器
谢谢啊,再问一下,如何将寄存器中的值在屏幕上输出呢?谢谢啦
16位汇编好像是将数据写入0b800开始的内存就可以显示,我是看王爽的那本《汇编语言》学到的,还有就是调用其他的库,来实现比如,Intel汇编语言程序设计中有一个irvine32的库,里面就有一个DumpRegs过程,可以显示寄存器的值