这里对这几个寄存器总结一下。
通用寄存器的主要用途
| 寄存器的分类 |
寄存器 |
主 要 用 途
|
| 通
用
寄
存
器
|
数据
寄存器
|
AX |
乘、除运算,字的输入输出,中间结果的缓存
|
| AL |
字节的乘、除运算,字节的输入输出,十进制算术运算
|
| AH |
字节的乘、除运算,存放中断的功能号
|
| BX |
存储器指针
|
| CX |
串操作、循环控制的计数器
|
| CL |
移位操作的计数器
|
| DX |
字的乘、除运算,间接的输入输出
|
变址 寄存器 |
SI |
存储器指针、串指令中的源操作数指针
|
| DI |
存储器指针、串指令中的目的操作数指针
|
变址 寄存器 |
BP |
存储器指针、存取堆栈的指针
|
| SP |
堆栈的栈顶指针
|
|
指令指针
|
IP/EIP |
|
| 标志位寄存器 |
Flag/EFlag |
|
| 32位
CPU的
段寄存器
|
16位CPU的
段寄存器
|
ES |
附加段寄存器
|
| CS |
代码段寄存器
|
| SS |
堆栈段寄存器
|
| DS |
数据段寄存器
|
新增加的 段寄存器 |
FS |
附加段寄存器
|
| GS |
附加段寄存器
|
这张表用来参照。
(1)在8086CPU中只有这四个寄存器可以在[...]中进行内存单元的寻址。
比如,下面的指令都是正确的:
mov ax,[bx]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp]
mov ax,[bp+si]
mov ax,[bp+di]
而下面都是错误的:
mov ax,[cx]
mov ax,[ax]
mov ax,[dx]
mov ax,[ds]
(2).在[...]中,这四个寄存器可以单独出现,或者只能以四种组合出现:bx和si、bx和di、bp和si、bp和di。
比如下面都是正确的
mov ax,[bx]
mov ax,[si]
mov ax,[di]
mov ax,[bp]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp+si]
mpv ax,[bp+di]
mov ax,[bx+si+idata]
mov ax,[bx+si+idata]
mov ax,[bp+si+idata]
mov ax,[bp+di+idata]
下面就是错误的
mov ax,[bx+bp]
mov ax,[si+di]
(3)只要在[....]中使用寄存器bp,而指令汇总没有显示给出段地址,段地址就默认在ss中。 比如下面的指令。
mov ax,[bp] 含义:(ax)=((ss)*16+(bp))
mov ax,[bp+idata] 含义:(ax)=((ss)*16+(bp)+idata)
mov ax,[bp+si] 含义:(ax)=((ss)*16+(bp)+(si))
mov ax,[bp+si+idata] 含义:(ax)=((ss)*16+(bp)+(si)+idata)
相关文章:
-
2021-04-04
-
2021-05-08
-
2022-01-19
-
2021-08-20
-
2021-10-14
-
2021-04-12
-
2021-12-22
-
2021-09-14
猜你喜欢
-
2021-10-23
-
2021-06-07
-
2022-12-23
-
2022-12-23
-
2021-09-05
-
2021-11-13
-
2022-12-23
相关资源
-
下载
2022-12-05
-
下载
2021-06-26
-
下载
2021-06-05