mov esi,offset @s1
mov edi,offset @s2
mov ecx,10
cld
rep movsd
1.rep movsd 每次ecx!=0便執行movsd ,然後ecx=ecx-1 movsd移動ds:[si] 到es:[di],
在32位彙編下可以用esi代替si,edi代替di
2.同時由於在一般exe中ds = es 程式起始位置所以另esi = offset @s1就可以找到變數s1 ,edi= offset @s2就可以找到變數s2
3.movsd此類指令有個性質,當標誌位d=0時執行一次esi = esi +1,edi= edi+ 1
d=1時執行一次esi = esi +1,edi= edi+ 1
所以此段指令的含義是從s1複製ecx個dword到s2
組合語言 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 一樣。功...
高階組合語言和低階組合語言的差別
80 86不支援像 if while repeat for break breakif try 這樣的機器指令。hla只要一遇到這些語句,就把他們編譯成乙個或多個真正的機器的指令 本書的目的 the art of assembly language 在於傳授你低階組合語言,談論第一章的高階結構只是實...