程序6.2
功能: 8個(gè)數(shù)據(jù)加和計(jì)算
assume cs:code
code segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
start: mov bx,0
mov ax,0
mov cx,8
s: add ax,cs:[bx]
add bx,2
loop s
mov ax,4c00H
int 21H
code ends
end start
-
start
指明程序的入口所在贱迟,即 CS:IP -
dw
即(define word)叫惊,定義 字 型數(shù)據(jù)
程序加載到內(nèi)存后
- 8個(gè)字型數(shù)據(jù),占用16個(gè)內(nèi)存單元
-
用 dw 定義的數(shù)據(jù)
被放在 從CS:0 開始到 CS:F 的前16個(gè)內(nèi)存單元里面 - 后面的內(nèi)存單元從CS:0010 開始兆沙,存放匯編指令對應(yīng)的機(jī)器碼
CS IP 指明程序的入口(指令的開始).png
檢測點(diǎn)6.1
第一問
檢測點(diǎn)6.1 第一問.png
審題: 什么叫用內(nèi)存單元中的內(nèi)容改寫程序中的數(shù)據(jù)诚些?
- 程序中的數(shù)據(jù),就是dw關(guān)鍵詞后面那一串8個(gè)數(shù)據(jù)氢哮,要改寫這些數(shù)據(jù)袋毙,就是要找到這些數(shù)據(jù)所在的位置(內(nèi)存單元的地址),而這些數(shù)據(jù)就排在 從 CS:0 開始到 CS:F 的前 16個(gè)內(nèi)存單元冗尤,使用
CS:[bx]
依次訪問即可
第二問
檢測點(diǎn)6.1 第二問.png
審題:如何使用棧來傳送數(shù)據(jù)听盖?
- 完全參考書上 程序6.3 來寫
- 第一個(gè)dw關(guān)鍵詞開辟了8個(gè)字的空間,并且存入了數(shù)據(jù)
- 第二個(gè)dw關(guān)鍵詞開辟了10個(gè)字的空間裂七,用作椊钥矗空間
- 可以計(jì)算出棧頂?shù)钠频刂?SP = (8+10)x2= 36 =24H
- 8個(gè)字的數(shù)據(jù)依舊使用
CS:[bx]
來訪問 - 彈出操作 pop 即可
簡單復(fù)習(xí)
- 復(fù)習(xí)寄存器CS 與 DS 的區(qū)別
http://www.reibang.com/p/7940204db608 - 復(fù)習(xí)出棧、入棧操作
http://www.reibang.com/p/4d8ca702549d
http://www.reibang.com/p/e9982ba1a5b4