mov、add、sub指令
mov 寄存器,数据 | 比如:mov ax,8 |
mov 寄存器,寄存器 | 比如:mov ax,bx |
mov 寄存器,内存单元 | 比如:mov ax,[0] |
mov 内存单元,寄存器 | 比如:mov [0],ax |
mov 段寄存器,寄存器 | 比如:mov ds,ax |
反推应该有
mov 寄存器,段寄存器
假如地址0B39:0100
mov ax,ds [ax == 0B39]
mov 内存单元,段寄存器
将段寄存器中的值传入内存中
mov 段寄存器,内存单元
mov ax, 1000H
mov ds,ax
mov ds,[0] %用10000H处存放的字形数据设置ds
栈
先入后出(像是箱子里面的书)
push ax 将寄存器ax中的数据送入栈
pop ax 将栈中数据送入ax
入栈出栈都是以字为单位的
我们知道CPU当前执行指令位置是CS:IP
对应寄存器来存放栈顶位置SS:SP
如果栈空sp指向栈底下面位置
push和pop可以往寄存器、段寄存器、内存单元中压入和取出数据
栈段
同代码段
一个栈段最大是多少呢?
看SP的变化范围,所以最大是64K,如果继续栈满情况下压栈会覆盖原来的值