彙編期末考試備考
1. 組合語言屬於機器語言。
2. **處理器是由運算器,控制器和暫存器組構成的
3. 儲存器的乙個位元組表示8位(bit),例如:暫存器ax分為高八位ah和低八位al兩個位元組,
4. mov操作指令的使用方式
1.mov 暫存器,資料 例如:mov ax,8
2.mov 暫存器,暫存器 例如:mov ax,bx
3.mov 暫存器,記憶體單元 例如:mov ax,[0]
4.mov 記憶體單元,暫存器 例如:mov [0],ax
5.mov 段暫存器,暫存器 例如:mov ds,ax
5. 8080/8088 cpu的暫存器組中,8位的暫存器共有8個
6. 在程式執行過程中,ip暫存器始終儲存的是下一條指令的首位址
7. 在機器內部操作中,cpu與儲存器之間的任何資訊交換使用的都是實體地址
8. 實體地址的形成過程是將段位址左移4位加偏移位址
9. 如果某一儲存單元的邏輯位址為236fh:1000h。則實體地址為(246f0h)
解析:其中段位址為1000h,偏移位址為2000h,所以填入字變數之前的實體地址為12000h,但是填入了16個字,每個字佔兩個字單元,所以佔32個字單元,按照偏移位址的增加量是0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,此為十六位偏移位址,即十六位位元組10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,此為十六位位元組,但是最後乙個字佔暫存器ax,分為高位ah和地位al,並且在棧中,低位al先入棧占領1e,然後高位ah進入棧占領1f,所以最後乙個字單元的實體地址為1201eh
11. 乙個段最大可定義64k位元組
12.乙個段可以放在記憶體的任何地方,但是起始位址應該從乙個能被16整除的單元位址開始。
13.關於shr和shl右移和左移的命令
例:設ax=3762h,cl=5,執行「shr ax,cl」後,ax=?
解析:此處shr命令為右移,切十六進製制的3762轉化為二進位制之後為11011101100010,所以二進位制右移之後為00000110111011,答案為01bbh。
現在提供一下十六進製制轉化二進位制的方法
方法一:首先十六進製制轉化為十進位制,我們要先明白從右到左位次分別為0,1,2,3,…第0位的權值為16的0次方,第一位的權值為16的1次方,以此類推,例如3762h轉化十進位制的時候即為3*(163)+7*(162)+6*(161)+2*(160)=14178(部落格使用不熟練,括號內的是十六的多少次方)然後將十進位制轉化為二進位制,就簡單了。
14.關於add ax,[bx]的命令
若ds=1000h,bx=2000h,(12000h)=56h,(12001h)=78h,ax=1000h,執行「add ax,[bx]」指令後,ax=( )。
解析:此處add ax,[bx],此處的[bx]指的是偏移位址bx位的資料,由上題可以看出,段位址ds=1000h,偏移位址bx為2000h,所以實體地址=12000h因為12001h為後進資料,為高位,所以[bx]=7856h,題上給出了ax=1000h,所以兩者相加,最後=8856h。
15.壓棧操作是十六位數的操作·
因為壓棧的過程是現將高八位放入,再將低八位放入,依次迴圈,出棧先出低位,後出高位
16.在執行"div bx"指令後,ax中存放商,dx存放餘數
div是乙個除法指令:被除數預設放在ax或dx和ax中,
eg1:當除數是bl此類八位時,被除數放在ax中,結束後的商放在低八位al,餘數放在高八位ah裡面,
eg2:當除數時bx此類十六位時,被除數預設放在ax和dx中,ax中放低十六位,dx中存放高十六位,其中結果的餘數放在高十六位dx中,商放在低十六位ax中
命令例如:div bl
17.b dw 1,2,10 dup(0)
這個命令可以看做分為三步,
dw 1
dw 2
dw 10 dup(0) ,
所以是分配了十二個字,二十四個位元組
18.彙編檔案的執行
彙編檔案剛寫完是以asm為字尾的不可直接執行的檔案,然後通過masm編譯成以後綴為obj的檔案,然後通過link連線成以後綴為exe的可執行檔案。
19.**中特殊**的作用
assume **開始
code ends 段**結束
start : 總**開始位置
end start 總**結束
20.當指令運算結果是0時,zf標誌位=1
21.【38題】psw是標誌暫存器
所以要不改變psw的值,只有使指令的執行不干擾標誌位的改變。所以只有mov ax,bx的轉移指令
22.【42題】cmp 比較指令,但是不保留結果
cmp ax,70h,相當與拿著ax和70比,減一下,但是沒有結果,只有過程,沒有結果
je ;等於則跳轉
jne ;不等於則跳轉
jz ;為 0 則跳轉
jnz ;不為 0 則跳轉
js ;為負則跳轉
jns ;不為負則跳轉
jc ;進製則跳轉
jnc ;不進製則跳轉
jo ;溢位則跳轉
jno ;不溢位則跳轉
ja ;無符號大於則跳轉
jna ;無符號不大於則跳轉
jae ;無符號大於等於則跳轉
jnae ;無符號不大於等於則跳轉
jg ;有符號大於則跳轉
jng ;有符號不大於則跳轉
jge ;有符號大於等於則跳轉
jnge ;有符號不大於等於則跳轉
jb ;無符號小於則跳轉
jnb ;無符號不小於則跳轉
jbe ;無符號小於等於則跳轉
jnbe ;無符號不小於等於則跳轉
jl ;有符號小於則跳轉
jnl ;有符號不小於則跳轉
jle ;有符號小於等於則跳轉
jnle ;有符號不小於等於則跳轉
jp ;奇偶位置位則跳轉
jnp ;奇偶位清除則跳轉
jpe ;奇偶位相等則跳轉
jpo ;奇偶位不等則跳轉
23.【多選第四題】邏輯位址和實體地址的區別和相同
邏輯位址和實體地址的區別是表達方式不同。例如邏輯位址1000:2000,分為段位址和偏移位址,但是實體地址相當於運算過的邏輯位址,此處邏輯位址對應的實體地址應為12000,他們的相同點是表達的位置一樣。
參考書籍《組合語言第四版》王爽著,任課老師 胡海芝
北航c 期末考試複習
筆者總結了北航計算機系c 考試的一些重點,希望對以後複習的同學能有所幫助 迭代器,工程模式,觀察者模式必考 變數基本資料型別 void bool char intfloat double wchar t short int typedef newtype oritype sizeof 三種用法 si...
C 期末考試複習筆記
c 語言是物件導向的程式語言,字尾名是.cs c 語言沒有指標c 語言完全擁有.net的自動 機制 c 語言不能用於硬體驅動程式的開發 net是乙個用於建立應用程式的平台 源 是乙個用於應用程式的核心,沒有源 則無法編譯乙個應用程式 工具欄是一些工具按鈕的組合 console.readline 的作...
數值分析期末考試複習(引論)
1 數值分析研究物件 數值分析是計算數學的乙個主要部分,計算數學是數學科學的乙個分支,它研究用計算機求解各種數學問題的數值計算方法及其理論與軟體實現。2 數值分析特點 面向計算機,要根據計算機特點設計切實可行的有效演算法 有可靠的理論分析,能任意逼近並達到精度要求,對近似計算要保證收斂性和數值穩定性...