組合語言備忘

2021-06-06 09:22:55 字數 573 閱讀 3765

x86下,nasm的語法:

1. loop

(1) (cx) = (cx) - 1

(2) 判斷cx中的值,不為0( 類似 c語言中的true) 則轉至標號 ( 類似c語言中的goto) 處執行程式,直到為0則向下執行。

由此可見:cx暫存器中的值影響著loop指令的執行結果 。通常我們用loop指令來實現迴圈功能,cx暫存器中存放迴圈次數 。

cflag為1時跳轉,一般cf=0表示結果沒有錯誤,cf=1表示有錯誤。

如div ebx, 這時除數是ebx,被除數在記憶體edx:eax位置,商存在eax暫存器,餘數存在edx。這是除數為4位元組的情況。如果除數是2位元組,被除數在dx:ax位置的記憶體,商放在ax,餘數放在dx。

4. cld 和 std

cld 清除direction flag, std 設定direction flag

會影響後面lodsb等指令的執行方向。lodsb是將ds:si指向的記憶體單元讀入累加器al中,然後si自動增加或減少1位。是增加還是減少就是由cld和std所設定的direction flag來確定。

組合語言 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...