1樓:禹乃敏綺煙
程式呼叫用call指念孝令,呼叫的子程式必洞賣須已經寫在程式裡。
系統會仔顫稿自動把子程式的返回位址(即呼叫程式中call指令的下一條指令的位址)存入堆疊,子程式執行後也會自動把堆疊中存的位址取出。
2樓:達智良優悠
彙編許久不用,只能憑印純謹象說下:
程式呼叫使用。
call以狀態字psw入棧為例。
pushpsw
poppsw
如果不是問語法,或者是彙編的使用技巧,去csdn論壇。
彙編區。提問吧,5分鐘內即有。
百粗褲扮度的問答範疇太廣,沒有巖灶針對性,呵呵。
組合語言裡面的堆疊是什麼東西啊!
3樓:天池血崩
1.堆疊本質上只是普通的記憶體位址。
2.堆和棧本來是兩種資料結構,現常用「堆疊」連用回僅表示棧。
3.棧的使答用方式是臨時存放資料,在某一段記憶體中,從記憶體位址最後開始存放,像疊盤子一樣,只能將最後放入的資料先取出來。
4.棧在組合語言中經常使用,cpu暫存器中有sp(32位為esp),即stack pointer,指向當前棧的頂端,組合語言中的棧並非其他語言中的一種陣列型的資料結構,而直接簡化為一段記憶體,通過pop和push等指令來進行直接的記憶體操作。
5.堆和棧有相似,即皆是一段普通記憶體,不同點是,堆是順序存放,且堆只能由程式設計師申請讓系統分配,而棧是程式設計師自行分配。
彙編一般無堆,win32彙編中可使用api函式來操作堆。
4樓:心臟曲線
最底下封口的儲存空間,按照先進後出,後進先出的原則。
5樓:網友
堆疊就是一種存放資料的格式,也可以說是乙個存放資料的空間。
6樓:網友
棧機制是來用來暫存資料的,因源為資料不bai可能都儲存在寄du存器裡面。額,我不知zhi道你對匯dao編了解不,先來一段**:
mov ax,20h
mov ss,ax 定義了ss的段位址。
mov sp,10h 定義了棧底。
以上**定義了棧段。
現在,我要計算100:0-100:10記憶體單元的和,就需要暫時儲存記憶體單元100:0-100:10的資料:
mov ax,100h
mov ds,ax
定義了ds的段位址。
mov cx,11
sub bx,bx
s:push [bx] 把100:0壓棧。
inc bx
loop s
上面是乙個迴圈。
棧機制是乙個很靈活的技術,一定要靈活地掌握,但是我不瞭解你的情況,也許你需要把問題描述一次。
什麼是彙編程式,編譯程式,解釋程式?分別說明他們的功能
7樓:脫豆言蓄
【彙編程式】:把組合語言書寫的程式翻譯成與之等價的機器語言程式的翻譯程式。
編譯程式】:把用高階程式設計語言書寫的源程式,翻譯成等價的計算機組合語言或機器語言的目標程式的翻譯程式。
解釋程式】:對源程式邊解釋翻譯成機器**邊執行的高階語言程式。
高階語言的程式的執行的途徑:
1)源程式(高階語言)->編譯程式】->目標程式(組合語言)->彙編程式】->目標程式(機器語言)->計算結果。
2)源程式(高階語言)->編譯程式】->目標程式(機器語言)->計算結果。
3)源程式(高階語言)->解釋程式】(逐條讀出源程式中的語句並解釋執行,即在解釋程式的執行過程中並不產生目標程式)->計算結果。
組合語言程式分析,急!!!!五道組合語言程式設計 程式分析題!!!不甚感激!!!
0000 7812 mov r0,12h0002 7934 mov r1,34h0004 e4 clr a 0005 fa mov r2,a0006 7f04 mov r7,04h0008 c3 clr c 0009 e8 mov a,r0000a 33 rlc a 000b f8 mov r0,a...
組合語言程式設計的問題,組合語言程式設計問題
1.jmp bx 如果 bx 1020h,那麼 ip 1020h,因為此種形式為通過暫存器的段內間接轉移,執行時將把暫存器的內容直接送ip,所以執行此指令後ip的值為1020h 2.jmp tab bx si 如果 ds 2000h,bx 1020h,si 0002h,tab 0010h,21032...
用組合語言編寫的程式必須經過()翻譯成目標程式後,才能被計算機直接識別和執行
按照規範的說法,應該是彙編程式。c語言的源程式,才用編譯程式。但是,目前,根本沒有必要摳這個字眼。用高階語言編寫的程式必須經過 翻譯成機器語言程式,計算機才能執行。急急急急!編譯程式。編譯程式的最終目標是將源程式編譯成目標程式。編譯程式是把用高階程式設計語言書寫的源程式,翻譯成等價的機器語言格式目標...