內存存儲方式
CPU中用16位寄存器來存儲一個字(1 word = 2 bytes = 16 bits). 其中高8位存放高字節, 低8位存放低字節. 如下圖, 用0 , 1兩個內存單元存放數據20000(4E20H).
DS和[address]
- CPU讀寫一個內存單元時,必須要先給出這個內存單元的地址.
- 內存地址由段地址和偏移地址組成.
- 數據段寄存器DS( Data Segment ), 用來存放要訪問數據的段地址.
mov BX, 1000H #向BX寄存器中寫入1000H
mov DS, BX #將BX寄存器中的值移入DS寄存器
mov AL,[0] #將地址單元1000h:0中的值移入AX寄存器中的低位.
#"[]"說明操作對象是一個內存單元
- "[...]"表示一個內存單元, [0] 表示內存單元的偏移地址為0. 在執行指令時8086CPU自動讀取DS寄存器中的數據作為內存單元的 段地址 .
- 因為8086CPU的硬件設計無法使用mov指令直接對DS寄存器寫入數據.
- 段寄存器:
- 代碼段寄存器CS(Code Segment).
- 數據段寄存器DS(Data Segment).
- 堆棧段寄存器SS(Stack Segment).
- 附加段寄存器ES(Extra Segment).
例題:
mov、add、sub指令
- mov
- mov 段寄存器, 寄存器.
- mov 寄存器, 段寄存器.
- mov 內存單元, 寄存器.
- mov 內存單元, 段寄存器.
- mov 段寄存器, 內存單元.
- add和sub
- 不能對段寄存進行操作.
CPU提供的棧機制
- 棧(stack), 有兩個基本操作: LIFO(Last In First Out)
- 入棧: 將新元素放入棧頂.
- 出棧: 從棧頂取出一個元素.
- 8086CPU提供入棧(PUSH)和出棧(POP)指令. 例如:
- push ax : 表示將寄存器ax中的數據送入棧中.
- pop ax : 表示從棧頂取出數據送入ax.
- 注意: 在8060CPU中push/pop操作都是以word(16 bits)為單位. 圖例:
- CPU如何知道棧頂的地址?
- 8086CPU中有兩個寄存器:
- 段寄存器SS.
- 寄存器SP.
*任意時刻,SS:SP 都指向棧頂元素.
- 8086CPU中有兩個寄存器:
push、pop指令
1. push/pop 寄存器
2. push/pop 段寄存器
3. push/pop 內存單元
- 將10000H~1000FH這段空間作為棧, 初始棧是空的, 將AX, BX, DS中的數據入棧.
分析:
1. 需要設置??臻g.則需要設置SS:SP.
2. push AX BX DS.
代碼:
mov ax, 1000 ;將段地址寫入寄存器ax.
mov ss, ax ;將ax寄存器中的值寫入ss段寄存器.
mov sp, 0010 ;將偏移地址寫入sp寄存器.
;將AX, BX, DS中的數據入棧
push ax
push bx
push ds
棧段
- 棧段就是將一組地址連續, 起始地址為16的倍數的內存單元當作??臻g來使用.
- 棧段的最大容量為64KB. 因為在執行push, pop指令時只修改SP, 而SP的變化換位是0-FFFFH, 所以為64KB.
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
寄存器
+關注
關注
31文章
5363瀏覽量
121193 -
存儲器
+關注
關注
38文章
7528瀏覽量
164348
發布評論請先 登錄
相關推薦
ARM匯編語言與指令格式資料分享
1、ARM匯編語言與指令格式介紹匯編語言介紹概念指的是用助記符代替操作碼,用地址符號或標簽(:#&)代替地址碼的編程語言。優缺點優點:可以直接訪問硬件目標,代碼簡短,執行速度快
發表于 04-22 16:10
匯編語言教程-段寄存器的說明語句
匯編語言教程-段寄存器的說明語句
在匯編語言源程序中可以定義多個段,每個段都要與一個段寄存器建立一種對應關系。建立這
發表于 03-27 17:17
?1426次閱讀
匯編語言學習課件_微處理器基礎知識
匯編語言學習課件 第二章 微處理器基礎知識
2.1 Intel公司80x86系列微處理器簡介
2.2 程序可見寄存器組
2.3 存儲器
發表于 12-31 10:39
?0次下載
[從零學習匯編語言] -寄存器詳解
文章目錄前言一、 存儲器與通用寄存器1. 存儲器2. 通用寄存器前言上一章我們曾簡單的介紹過計算機中的一些硬件和軟件的相關概念,還不熟悉的小伙伴可以點擊下面的鏈接進行預習:[
發表于 11-26 20:51
?8次下載
![[從零學習<b class='flag-5'>匯編語言</b>] -<b class='flag-5'>寄存器</b>詳解](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機匯編語言的結構/數據類型/匯編指令
開發匯編語言是為了為機器級代碼指令提供助記符或符號,匯編語言程序由助記符組成,因此應將它們翻譯成機器代碼。負責這種轉換的程序稱為匯編程序。匯編語言通常被稱為低級
評論