《汇编语言》第二版 王爽著 第三章 寄存器(内存访问) 要点
2015-07-31 14:46
387 查看
内存中字的存储:字型数据,字节型数据
尤其注意字型数据,地址高位对应数据高位,地址低位对应数据低位
如:1000:0000 AE 01 20 FE
1000:0000处存放的字型数据时01AEH
DS和[address]:
DS寄存器通常用来存放需要访问数据的段地址(8086不支持将数据直接送入段寄存器操作,只能用一般的寄存器进行中转)
[address],表示一个内存单元,address的数值表示内存单元的偏移地址(默认的段地址为ds中的地址)
数据段(用一个段存放数据):人为的将一组内存单元定义为一个段
栈(栈是倒过来写入的)(以字为单位,无法进行字节出入):
操作规则:LIFO
基本操作:入栈、出栈
SS:栈段寄存器
SP:栈指针寄存器
SS:SP
始终指向栈顶元素
push XX:1、SP = SP – 2 2、将XX中的内容送入SS:SP中
pop XX(内容并不会消失,sp的数值界定了有效栈元素的范围):
1、 将SS:SP中内容送入XX 2、SP
= SP + 2
以上两种指令实质上是一种内存传送指令
栈顶超界问题:8086CPU不保证我们对栈的操作不会超界,需要我们自行注意
栈段(用一个段当作栈):最大64KB(因SP位16位寄存器)
尤其注意字型数据,地址高位对应数据高位,地址低位对应数据低位
如:1000:0000 AE 01 20 FE
1000:0000处存放的字型数据时01AEH
DS和[address]:
DS寄存器通常用来存放需要访问数据的段地址(8086不支持将数据直接送入段寄存器操作,只能用一般的寄存器进行中转)
[address],表示一个内存单元,address的数值表示内存单元的偏移地址(默认的段地址为ds中的地址)
数据段(用一个段存放数据):人为的将一组内存单元定义为一个段
栈(栈是倒过来写入的)(以字为单位,无法进行字节出入):
操作规则:LIFO
基本操作:入栈、出栈
SS:栈段寄存器
SP:栈指针寄存器
SS:SP
始终指向栈顶元素
push XX:1、SP = SP – 2 2、将XX中的内容送入SS:SP中
pop XX(内容并不会消失,sp的数值界定了有效栈元素的范围):
1、 将SS:SP中内容送入XX 2、SP
= SP + 2
以上两种指令实质上是一种内存传送指令
栈顶超界问题:8086CPU不保证我们对栈的操作不会超界,需要我们自行注意
栈段(用一个段当作栈):最大64KB(因SP位16位寄存器)
相关文章推荐
- 只需十分钟,结果大不同 |《深度思考》
- 《洋葱阅读法》读书笔记
- 汇编语言无效指令错误概述
- 汇编语言超浓缩教程
- Jquery实战_读书笔记1―选择jQuery
- JavaScript 精粹读书笔记(1,2)
- JavaScript 权威指南(第四版) 读书笔记
- Terry七月Ruby读书笔记(比较详细)第1/4页
- 从「林」开始--C++ primer 读书笔记 -- Part II: Containers ...
- [读书笔记]Scrum 总结
- 《穷爸爸,富爸爸》读书笔记
- 《程序员的职业素养》读书笔记
- sniff读书笔记
- C 语言内嵌汇编栈指针问题
- 初学汇编语言的几个练习题
- 《Zabbix监控系统深度实践》读书笔记
- 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记
- 重学JS 1
- 《javascript高级程序设计》读书笔记——引用类型之Object类型(细节整理)
- 《HTML重构》读书笔记&思维导图