彙編 OFFSET操作符

2021-09-05 08:57:38 字數 773 閱讀 2165

offset 找到標記位置的操作符

assume cs:code, ds:data

data segment

db 128 dup (0)

data ends

stack segment

db 128 dup (0)

stack ends

code segment

start: mov ax, bx

mov ax, data

mov ds, ax

mov ax, stack

mov ss, ax

mov sp , 128

mov si, offset start ; 找到start標記的指令的偏移位址

mov di, offset s ; 找到s標記的指令的偏移位址

; 將start標記的指令複製到s標記的指令的位置

mov ax, cs:[si]

mov cs:[di], ax

s: nop

nopmov ax, 4c00h

int 21h

code ends

end start

程式執行之前

程式執行後 

彙編操作符

它們在 儲存器和 暫存器 暫存器和輸入輸出埠之間傳送資料。1.通用 資料傳送指令 mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入 堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓入 堆疊....

操作符offset 和 jmp指令

轉移指令 可以修改ip或者同時修改cs和ip的指令 jmp loop call 總的來說,轉移指令就是可以控制cpu執行記憶體中某處 的指令。8086的轉移行為有一下幾類 由於轉移指令對ip的修改範圍不同,段內轉移,又分為 短轉移和近轉移 loop 無條件轉移指令 jmp 條件轉移指令 偽指令off...

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...