組合語言 (王爽著第三版)實驗二

2022-06-04 17:09:10 字數 1742 閱讀 5448

實驗前要求我們將書本p74的程式段按理論分析,將結果進行填空。之後用debug,將該程式段寫入記憶體,逐條執行之後,

根據指令執行後的實際執行的結果填空如下。

mov ax,0021

mov  ax , ffff

mov  ds , ax

mov  ax , 2200

mov  ss , ax

mov  sp , 0100

mov  ax , [0]                       ;ax=3130

add  ax , [2]                        ;ax=6462

mov  bx , [4]                       ;bx=3534

add  bx , [6]                        ;bx=6c6a

push  ax                             ;sp=00feh  ;修改的記憶體單元的位址是2200:00fe內容為6462

push  bx                             ;sp=00fch  ;修改的記憶體單元的位址是2200:00fc內容為6c6a

pop  ax                               ;sp=00feh  ;ax=6c6a

pop  bx                               ;sp=0100h  ;bx=6462

push  [4]                             ;sp=00fe    ;修改的記憶體單元的位址是2200:00fe內容為3534

push  [6]                             ;sp=00fc    ;修改的記憶體單元的位址是2200:00fc內容為3736

在使用a指令除錯前,先使用e命令將記憶體單元0021:0~0021:7連續8個位元組資料修改為30h,31h,32h,33h,34h,35h,36h,37h,最後用d命令檢視是否正確。

接著我們再使用a指令去除錯每一步的指令

使用 a命令輸入 7 行指令,使用 e 命令修改 2000:0~2000:f 的值,及修改後檢視的部分

單步執行除錯,並且每步除錯後都用d命令檢視2000:0~2000:f的值:

從中我們發現前三行的指令的功能為:把0~2000:f這段空間當做棧段,初始化棧頂

mov sp,0010h   :設定棧頂的偏移位址,棧為空,sp=0010h

棧頂為2000:0010,棧底為2000:000e

在完成實驗的過程中,由於操作不熟練經常出現失誤,例如多敲回車。。(輸完一行總是情不自禁敲乙個回車)每週如果只花課堂上一節課的時間去學習彙編,好像是真的不可能學好的。課外還需要自己學習。這一章實驗依舊花了很久時間,自己思考的也不夠,繼續努力吧。

《組合語言》(第三版)王爽著 預備

預備 1.2.十進位制 位的概念 數軸表示數字的方式 3.二進位制 4.十進位制轉換成二進位制 5.十進位制快速轉換成二進位制 6.十六進製制 7.十進位制轉換成十六進製制 8.十進位制快速轉換成十六進製制 9.十六進製制和二進位制之間快速互相轉換 10.反過來思考的方式 組合語言是一門低階語言,與...

《組合語言》王爽第三版 實驗9

datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...

王爽 組合語言第三版實驗7

這個題目做了很久,使用了2中方法做出了結果,不過目前在單步除錯時還有點疑問。題目 power idea公司從1975成立一直到1995年的基本情況被定義到了datasg中,程式設計將datasg段中的資料寫入到table段中,並計算21年中的人均收入 取整 結果儲存到table段中 兩種方法我都使用...