檢視linux核心**時,常常看到下面八個彙編指令,下面簡單講解一下它們的含義和用法。
這8個是彙編常用的批量傳送指令,用來載入或者儲存幾個連續的記憶體。
ldmib、ldmia、
ldmdb、ldmda、
stmib、stmia、
stmdb、stmda、
觀察指令時可將指令分兩部分解釋:
ldm:load memory 載入記憶體,意思是將記憶體載入到cpu暫存器中;
stm:store memory 儲存記憶體,意思是將暫存器內容儲存到記憶體中,跟ldm是相反的傳送方向;
例:ldmib r3, @將 [r3+4]、[r3+8] 的內容分別載入到 r5、r7;
ldmia r3, @將 [r3]、[r3+4]、[r+8] 的內容分別載入到 r5、r6、r7;
ldmdb r3, @將 [r3-4]、[r3-8]、[r3-12] 的內容分別載入到 r5、r6、r7;
ldmda r3, @將 [r3] 、[r3-4]、[r3-8] 的內容分別載入到 r5、r6、r7;
stmib r3, @將 r5、r7 的內容分別儲存到 [r3+4]、[r3+8];
stmia r3, @將 r5、r6、r7 的內容分別儲存到 [r3]、[r3+4]、[r+8];
s***b r3, @將 r5、r6、r7 的內容分別儲存到 [r3-4]、[r3-8]、[r3-12];
s***a r3, @將 r5、r6、r7 的內容分別儲存到 [r3] 、[r3-4]、[r3-8]。
8086彙編 資料傳送指令
於ibm pc組合語言程式設計 沈美明 溫冬嬋 編著 負責把 資料,位址或立即數傳送到暫存器或者儲存單元中.1.通用資料傳送指令 mov,push,pop,xchg mov指令在cpu內或cpu和儲存器之間傳送位元組或字,目的運算元不允許使用立即數,也不能用cs暫存器,不允許用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...
32位彙編指令 條件傳送指令
條件傳送指令如下 cmoves,d 等於 0時傳送 cmovzs,d 同cmove cmovnes,d 不等於 0時傳送 cmovnzs,d 同cmovne cmovss,d 負數時傳送 cmovnss,d 非負數時傳送 cmovgs,d 有符號大於時傳送 cmovnles,d 同cmovg cmo...