組合語言(八)

2021-09-25 22:42:05 字數 797 閱讀 7954

執行call指令,進行兩步操作:

將當前ip或cs和ip壓入棧

轉移call 標號(將當當前ip壓棧後,轉到標號處執行命令)

執行call指令時,cpu進行操作:

(sp)=(sp)-2

((ss)*16+(sp))=(ip)

(ip)=(ip)+16位位移

call fat ptr 標號實現段間轉移

執行這種call指令時,cpu進行操作:

(sp)=(sp)-2

((ss)*16+(sp))=(cs)

(sp)=(sp)-2

((ss)*16+(sp))=(ip)

(cs)=標號所在段的段位址

(ip)=標號在段中的偏移位址

相當於:

push cs

push ip

jmp far ptr 標號

call 16為reg

功能相當於:

push ip

jmp 16位reg

mul是乘法指令:

兩個相乘的數:兩個數要麼都是8位,要麼都是16位。8位預設乙個放al,另外乙個放8位reg或者記憶體位元組單元。16位乙個預設放ax中,另乙個放在16位reg或者記憶體字單位

結果:8位乘法,預設放ax中。16位乘法,高位預設在dx中存放,地位在ax中。

格式如下:

mul reg

mul 記憶體單元

組合語言 AT T組合語言

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

組合語言學習筆記 八

1.兩個描述性的符號 reg和sreg reg來表示乙個暫存器 ax bx cx dx ah al bh bl ch cl dh dl sp bp si di sreg表示乙個段暫存器 ds ss cs es 2.只有這4個暫存器 bx bp si di 可以用在 中來進行記憶體單元的定址 只要在 ...

組合語言 彙編指令

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