王爽《汇编语言》第三版 第三章 内存访问
3.1 內存中字的存儲
在0地址處開始存放20000(4E20H):
注意:0號單元是低地址單元,1號單元是高地址單元。
任何兩個地址連續(xù)的內存單元,N號單元和 N+1號單元,可以將它們看成兩個內存單元 ,也可以看成一個地址為N的字單元中的高位字節(jié)單元和低位字節(jié)單元。
?
?
3.2 DS和[address]
在8086PC中,內存地址由段地址和偏移地址組成,8086CPU中有一個DS寄存器,通常用來存放要訪問的數據的段地址。
?
執(zhí)行指令時,8086CPU自動取DS中的數據為內存單元的段地址。
?
3.3 字的傳送
3.4 mov、add、sub指令
?
已學mov指令的幾種形式:
1.mov 寄存器,數據
2.mov 寄存器,寄存器
3.mov 寄存器,內存單元
4.mov 內存單元,寄存器
5.mov 段寄存器,寄存器
mov 寄存器,段寄存器 與 mov 內存單元,段寄存器 是正確的指令。
3.5 數據段
我們可以將一組長度為N(N≤64K)、地址連續(xù)、起始地址為16的倍數的內存單元當作專門存儲數據的內存空間,從而定義了一個數據段。
3.6 棧
棧是一種具有特殊的訪問方式的存儲空間。它的特殊性就在于,最后進入這個空間的數據,最先出去。
棧的操作規(guī)則:LIFO(Last In First Out,后進先出)。
任意時刻,SS:SP指向棧頂元素。
3.7 CPU提供的棧機制
我們在基于8086CPU編程的時候,可以將一段內存當作棧來使用。
8086CPU的入棧和出棧操作都是以字為單位進行的。
push ax
1.SP=SP–2;
2.將ax中的內容送入SS:SP指向的內存單元處,SS:SP此時指向新棧頂。
pop ax
1.將SS:SP指向的內存單元處的數據送入ax中;
2.SP = SP+2,SS:SP指向當前棧頂下面的單元,以當前棧頂下面的單元為新的棧頂。
3.8 棧頂超界的問題
8086CPU不保證對棧的操作不會超界。
3.9 push、pop指令
push和pop指令是可以在寄存器和內存之間傳送數據的。
棧空間當然也是內存空間的一部分,它只是一段可以以一種特殊的方式進行訪問的內存空間。
3.10 棧段
對于8086PC機,在編程時,我們可以根據需要 ,將一組內存單元定義為一個段。
一個棧段的容量最大為64KB。
?
?
參考資料:《小甲魚匯編零基礎入門》
?
《匯編語言》第三版
?
轉載于:https://www.cnblogs.com/mubu/p/6358185.html
總結
以上是生活随笔為你收集整理的王爽《汇编语言》第三版 第三章 内存访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java十进制转换为二进制的无符号数
- 下一篇: 【计算机就业-银行】校招想去银行该怎么准