1、mov 段寄存器 寄存器 mov 寄存器 段寄存器 (两种形式都是可以的)
mov 寄存器 内存单元 mov 内存单元 寄存器
mov 段寄存器 内存单元
段寄存器和一般寄存器或者内存单元的加减运算一般不行,比如说 add ds,ax
是非法的
-----------------------数据段-------------------------
al:ax的低8位寄存器,单独使用时不会向ax的高8位进位
在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器,低地址单元
和低8位寄存器对应
[0001]里面不管是几位都不会影响他的意义,依然是段地址加上偏移地址为内存
地址
----------
关于cs寄存器和IP寄存器,总所周知的是一个是计算机将要取指的段寄存器,另
一个是偏移地址寄存器,那么他的当前值代表什么呢,它的值又是在什么时候改
变的呢? 它的值是正在操作而还没有操作到取指到指令寄存器中以前的那个地
方的值,其值得改变也是在上一条指令被放进了cpu的指令寄存器后改变它的值
到下一条指令的地址处,另外这是段寄存器,有些操作时受限的
------------栈-----------------
8086的入栈和出栈操作都是以字为单位进行的
ss 和 sp 寄存器(SS按照段寄存器操作 SP寄存器按照一般寄存器操作)
任意时刻ss:ip指向栈顶元素
入栈时,栈顶从高地址向低地址方向增长
当栈为空时,ss:sp只能指向栈的最底部单元下面的地址
栈顶超界问题 栈顶超界后不会有任何警告,但它会改变内存中不属于栈中的值
可能带来严重后果
push pop 使用 pop 寄存器 pop 段寄存器 pop 内存单元 pop [0](给出偏
移地址一ds寄存器中段地址为段地址)
栈顶的最大变化范围
pop和push和mov指令不同,mov一步完成而pop和push因为要改变sp的值而需要两步完成 |