汇编语言第五到八章总结
第五章?[BX]和loop
1.內(nèi)存單元間接表示: [bx]
mov? dl, [0];? dl? ←? ((ds)×16 + 0)
mov? bx, 0
mov? dl, [bx];? dl? ←? ((ds)×16 + (bx))
可以使用bx間接訪問內(nèi)存單元。默認,段地址在ds。
?
2.loop指令
(1) 語法格式
? ? ?loop? 標號
(2) CPU執(zhí)行指令過程
? ? ? ① (cx) ← (cx) - 1
? ? ? ② 判斷cx的值是否為0。 如果(cx) ≠ 0,跳轉(zhuǎn)到標號處執(zhí)行; 如果(cx) = 0, 執(zhí)行l(wèi)oop后面的其它指令。
?
3.段前綴
mov dl, [6];? dl? ←? ((ds)×16 + 6)
mov ax, [bx];? ax? ←? ((ds)×16 + (bx))
默認情形下,無論是直接給出的偏移地址,還是通過bx間接給出的偏移地址,都是取ds的值作為段地址來計算物理地址。 可以通過增加「段前綴」改變默認狀況。
?
4.安全內(nèi)存空間
計算機系統(tǒng)內(nèi)存的使用并不是任意的,有些內(nèi)存單元有專用用途,保留有系統(tǒng)重要數(shù)據(jù)。
① 在8086模式中,00200h ~ 002ffh這段空間一般不會被使用,視作用戶可自由使用的安全空間。
② 現(xiàn)代操作系統(tǒng)大多使用CPU保護模式對內(nèi)存使用進行管理,限制用戶非法訪問一些關(guān)鍵內(nèi)存空間。
?
第六章?包含多個段的程序
① 使用偽指令segment和ends定義邏輯段后,究竟是用作代碼段、數(shù)據(jù)段還是棧,由程序員指定。
② 使用assume僅僅表示將某個邏輯段和某個段寄存器關(guān)聯(lián)起來;真正當作特定的段使用,需要在代碼段中設(shè)置相應(yīng)的段寄存器值,如ds, ss。
③ 段名代表的是段地址,是常數(shù)。不能使用mov直接送入段寄存器。
?
第七章?更靈活的定位內(nèi)存地址方法
1.匯編指令: and和or
and指令:① and指令語法格式及對操作數(shù)要求與add指令同
? ? ? ? ? ? ? ? ?② 可以實現(xiàn)將操作數(shù)指定位設(shè)置為0
or指令:① or指令語法格式及對操作數(shù)要求與add指令同
? ? ? ? ? ? ??② 可以實現(xiàn)將操作數(shù)指定位設(shè)為1
?
2.匯編中的字符處理
在匯編源程序中:既可以使用諸如'a'這樣的字符寫法,也可以使用ASCⅡ碼形式的寫法。
在debug中: a命令中不支持諸如'a'這樣的寫法
? ? ? ? ? ? ? ? ? ? ? e命令中支持諸如'a'這樣的寫法,也支持ASCⅡ碼形式的寫法
?
3.其它靈活的內(nèi)存地址表示
用[bx + idata]表示表示內(nèi)存單元。idata表示常數(shù)。
用[si]表示表示內(nèi)存單元。
用[si + idata]表示表示內(nèi)存單元。idata表示常量。
用[di]表示表示內(nèi)存單元。
用[di + idata]表示表示內(nèi)存單元。idata表示常量。
用[bx+di], [bx+si]表示表示內(nèi)存單元。
用[bx+di+idata], [bx+si+idata]表示表示內(nèi)存單元。
?
第八章?數(shù)據(jù)處理的兩個基本問題
1.匯編指令中操作數(shù)的類型
常數(shù)位于cpu內(nèi)部,指令緩沖器;寄存器位于cpu內(nèi)部,寄存器;內(nèi)存單元位于cpu外部,內(nèi)存
?
2.匯編指令中內(nèi)存單元操作數(shù)的地址表示
在8086中,可用于表示內(nèi)存偏移地址的寄存器只有: BX, SI, DI和BP。
這些寄存器可以單個出現(xiàn)在[]中,也可以以特定組合方式出現(xiàn)。
使用BX, SI, DI表示偏移地址時,默認段地址在DS中;
使用BP表示偏移地址時,默認段地址在SS中。
?
3.匯編偽指令: db, dw, dd, dup
data segment
db 1,2,3; 每個數(shù)據(jù)分配1個字節(jié)
dw 1,2 3; 每個數(shù)據(jù)分配2個字節(jié)
dd 1,2,3; 每個數(shù)據(jù)分配4個字節(jié)
data ends
?
data segment
db 0,0,0,0,0,0,0,0
db 8 dup(0); 預(yù)留8個字節(jié)單元,每個單元值為0
dd 8 dup(?); 預(yù)留8個字節(jié)單元,每個單元值未分配
data ends
?
轉(zhuǎn)載于:https://www.cnblogs.com/yangpengassembly/p/10165947.html
總結(jié)
以上是生活随笔為你收集整理的汇编语言第五到八章总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梨花雨微电影分别在哪些省份拍摄
- 下一篇: 性能测试八:jmeter进阶之beans