1樓:你的合夥人
彙編bai語言中sp暫存器是指的是du堆疊指標暫存器,在堆
zhi棧操作中使dao用,push和pop指令是從sp寄存內
器得到現行堆疊段的容段內偏移量,所以稱sp暫存器為堆疊指標,sp始終指向棧頂。
堆疊是計算機中廣泛應用的技術,基於堆疊具有的資料進出lifo特性,常應用於儲存中斷斷點、儲存子程式呼叫返回點、儲存cpu現場資料等,也用於程式間傳遞引數。
擴充套件資料
為了更準確地描述堆疊,根據「壓棧」操作時堆疊指標的增減方向,將堆疊區分為『遞增棧』(sp 向大數值方向變化)和『遞減堆疊』(sp 向小數值方向變化);
又根據sp 指標指向的儲存單元是否含有堆疊資料,又將堆疊區分為『滿堆疊』(sp 指向單元含有堆疊有效資料)和『空堆疊』(sp 指向單元不含有堆疊有效資料)。
這樣兩兩組合共有四種堆疊方式——滿遞增、空遞增、滿遞減和空遞減。
arm處理器的堆疊操作具有非常大的靈活性,對這四種型別的堆疊都支援。
2樓:匿名使用者
組合語言中sp是堆復棧寄存製器。堆疊——是一段按照後bai進先出(lifo)原則
du組織起來的連續存zhi儲區域。用於程式保
dao存或恢復資料,或用於子程式呼叫及中斷響應時保護與恢復現場。sp是堆疊指標暫存器,存放著當前堆疊棧頂位址。
一般情況下,對sp有影響的指令,對sp的操作都是隱式的,就是說sp並不出現在指令運算元當中。
例如:push ax;累加器ax的內容壓棧儲存,(sp)=(sp)-2
pop bx;堆疊內儲存的累加器ax的內容彈出到bx暫存器中,(sp)=(sp)+2
使用push、pop指令使用堆疊,要注意進出棧的匹配,否則將引起不可預期的後果。
組合語言用RRC指令編寫16位暫存器除8指令
除8相當於右移三次就實現了,程式如下 假設除數儲存在30h31h,高位在前。div8 mov r2,3 loop clr c mov a,30h rrc a 高位中的d0移到c mov 30h,a mov a,31h rrc a c移到低位中的d7 mov a,31h djnz r2,loop 移位...
組合語言中db是什麼意思,組合語言中DB是什麼意思?
風翼殘念 db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 ...
JC在組合語言中是什麼意思,JC在組合語言中什麼意思
jc 在組合語言 是一 bai個du 條件轉移指令的操作碼zhi 後面應該再加上dao乙個位元組的版偏移量 即要轉移權到位址 為運算元 例如 jc llla 其中 jc 為操作碼 表示指令要執行的功能 j 表示轉移 c表示轉移到條件 當進製標誌c 1 即有進製時 轉移 否則不轉移 llla 是運算元...