上次說到組合語言十分重要,所以又為了避免忘記,貼上一些常用彙編指令
@mov 指令範例
mov r1, #8
mov r2, r1
mov r3, #10
@mvn 傳送取反賦值
mvn r1, #0b10
mvn r2, #5
mvn r3, r1
@sub 減法 目的暫存器 被減數(不能是立即數) 減數
mov r2,#4
sub r1,r2,#2
mov r0,#1
sub r3,r1,r0
@add 加法 目的暫存器 兩個相加的數
add r1,r2,#3
@and 邏輯與 目的暫存器 要與的兩個數
mov r1,#5
and r2,r1,#0
mov r1,#5
and r2,r1,#1
@bic 位清零 目的暫存器 被清除物件 掩碼(為1的位進行清零)
mov r1,#0b101011
bic r2,r1,#0b101
@cmp 比較 結果儲存在cpsr(程式狀態暫存器)中
mov r1,#2
cmp r1,#1
mov r1,#2
cmp r1,#3
mov r1,#2
cmp r1,#2
@tst 測試位 兩個數按位與 看是否為0 結果存在cpsr中
mov r1,#0b101
tst r1,#0b001
mov r1,#0b101
tst r1,#0b10
@b 分支
mov r1,#6
mov r2,#5
cmp r1,r2
bgt branch
branch:
sub r3,r1,r2
end@bl 帶鏈結返回的跳轉
bl func1
func1:
mov r1,#2
mov r2,#3
mov pc,lr
@msr mrs
mrs r0,cpsr
orr r0,#0b100
msr cpsr,r0
@ldr 記憶體到暫存器
mov r0,#0xff
str r0,[r1]
ldr r2,[r1]
@str 暫存器到記憶體 暫存器 記憶體位址
mov r0,#0xff
str r0,[r1]
組合語言常用指令
第一部分 組合語言 組合語言是二進位制指令的文字形式,與二進位制指令是一一對應的關係 彙編 指令 是機器碼的助記符,經過彙編器編譯後,由cpu執行。彙編 偽指令 用來指導指令執行,是彙編器的產物,最終不會生成機器碼。常用彙編指令 1 相對跳轉指令 b bl 這兩條指令的不同之處在於bl指令除了跳轉之...
組合語言 彙編指令
功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...
組合語言 傳送指令
一.傳送指令 1.通用傳送指令mov mov dst,src 將src傳送到dst中 dstsrc操作位數 mem reg imm8 16 mem reg seg reg8 16 reg seg mem 8 16 mem reg seg 8 16 imm是立即數,reg是暫存器,seg是段暫存器,m...