王爽-汇编第三章

ds数据段地址
[address] 表示的数据时ds*16+address段的内容
sub 相减
数据段的最大范围是2^16 即64K

3.1~3.5 小结
1.字在内存中存储时,要用两个地址连续的内存单元来存放,字的低位字节存放在低地址单位中,高位字节存放咋高位地址单位中。
2.用mov指令访问内存单位,可以在mov指令中只给出单元的偏移地址,此时,段地址默认在ds寄存器中
3.[address] 表示一个偏移地址为address的内存单元。
4.在内存和寄存器之间传送自行数据时,高地址单元和高8为寄存器,地址单元和低8位寄存器想对应。
5.mov,add,sub 是具有两个操作对象的指令,jmp是具有一个操作对象的指令。
6.可以根据自己的推测,在debug中实验指令的新格式。

栈一种特殊的存储方式
先进后出(last in first out)

栈的理解:
栈是先进后出的
在声明一个栈时,ss是栈的段地址 ,sp是栈的偏移地址,首次,sp指向的位置为栈空间+1 的位置
push 进栈操作
pop 出栈操作
在使用栈的时候要防止栈顶越界问题。

栈的综述:
1.8086cpu提供了栈的机制,方案如下:
在ss。sp 中存放栈顶的段地址和偏移地址。
提供入栈和出栈指令,他们根据ss:sp指向的地址,按照栈的方式访问内存单元。
2.push指令的执行步骤:sp=sp-2 ,向ss:sp指向的字单元中送人数据
3.pop指令的执行步骤:从ss:sp指向的子单元中读取数据 ,sp=sp+2
4.任意时刻,ss:sp指向栈顶元素 。
5.8086cpu只记录栈顶,栈空间的大小 我们要自己管理
6.用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺序和入栈的顺序相反。
7.push,pop实质上市一中内存传送指令,注意它们的灵活应用。

栈段空间最大为2^16 为64K(针对16位)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值