針對組合語言做題所發現漏洞的補充學習

2021-09-02 14:18:54 字數 1577 閱讀 6892

1.80486cpu實位址模式下的特點

1.加電復位後,80486自動工作在實模式,系統在dos管理下;

2.只能訪問第乙個1m記憶體(0000h~ffffh);

3.儲存管理部件只能分段管理,沒有分頁功能,因偏移位址最大為16位,每邏輯段最大為64kb。

4.實位址模式下,段暫存器中存放段基址。

2.運算子的部分回顧

關係運算子:eq相等、ne不等、gt大於、lt小於、ge大於等於、le小於等於

資料回送運算子

1.seg 回送段基址

2.offset 回送偏移位址

3.$ 返回變數在邏輯段中占用的位元組總數

pushf:sp=sp-2,指標上移兩個位元組壓入十六位標誌暫存器,popf相反。此組指令用於保護現場和恢復現場。

pusha:sp=sp-16,指標上移十六個位元組壓入8個十六位通用暫存器,popa反序出棧,,用於保護和恢復現場。

adc和sbb即在二進位制加減法中考慮進製/借位標誌c標誌的值。

neg 二進位制求補指令

無符號二進位制乘法 mul

名稱預設被乘數乘數積

位元組乘法

al運算元

ax字乘法

ax運算元

低16位ax,高16位dx

雙字乘法

eax運算元

低32位eax,高32位edx 

無符號二進位制除法 div

名稱預設被除數商餘數

位元組除法

axal

ah字除法

eaxax

dx雙字除法

低32位eax,高32位edx

eaxedx

3.轉移指令中,需注意一些等價的助記符:

jc/jb/jnae

jz/je

4.移位指令中,無符號數的shl和有符號數的sal可以互換,但是shr和sar不可以互換,sar保留最高位的符號

rcl和rcr,將cf加入到邏輯移位的隊伍中;rol和ror自己飽和,只進行將移出的數字移進cf的操作。

5.test運算進行邏輯與後,co置0,psz按結果來,a不作定義,不影響目的運算元的數值。

6.dos功能呼叫 int 21h

01h輸入字元並顯示,給al

02h顯示乙個字元,來自dl

09h,顯示字串,首位址ds:dx,遇「$」方止

0ah,輸入字串,首位址ds:dx,遇0dh回車方止

4ch,結束正在執行的程式,返回dos作業系統

7.bios輸入功能呼叫 int 16h

00h輸入字元不顯示,給al 

01 h查詢鍵盤緩衝區,z=0表示有輸入,z=1表示無輸入

8.bios輸出功能呼叫 int 10h

00h設定屏顯方式 al=0小黑白、1小彩色、2大黑白、3大彩色

0eh顯示乙個字元,來自al

13h顯示字串

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...

組合語言 《組合語言》王爽 實驗一

從 1000 0 開始寫入命令 a 1000 0 mov ax,4e20 add ax,1416 mov bx,2000 add ax,bx mov bx,ax add ax,bx mov ax,001a mov bx,0026 add al,bl add ah,bl add bh,al mov a...