1樓:匿名使用者
push ax ; ax 的資料壓入堆疊
pop ax ; 出棧 恢復 ax 資料呼叫子程式前為了 儲存 ax 的資料 不 受到影響,返回內時 恢復原來的容資料。
如果子程式不用到 ax 則可以 省去上述操作。
2樓:匿名使用者
堆疊的作用!bai
**********===
假設程式du結構如下zhi,用到dao
了回ax
-----------------
主程式**1【假設ax=5】
呼叫子答程式【假設子程式用到了ax,且使的ax=7】主程式**2【ax=7,不是5了】
子程式**
********************=使用push ax 儲存ax
使用pop ax 恢復ax
再看-------------------------主程式**1【假設ax=5】
呼叫子程式【先儲存ax,用到了ax,且使的ax=7,但恢復ax,ax=5】
主程式**2【ax=5】
子程式**
3樓:匿名使用者
在呼叫抄子程式前,ax裡有一個值,而且是有用的。
在呼叫子程式之後,要輸出什麼結果,有一句mov ah, 2,這裡改變了ax裡的值。當然,在呼叫子程式的過程中,可能也改變ax中的值了。
程式希望在呼叫子程式、列印結果之後,還要用原來的ax值,所以就在呼叫之前把ax的值存到棧中,之後又恢復ax原來的值。
組合語言的程式開始都有 push ds mov ax,0 push ax 這三段有什麼作用?
4樓:永恆
code segment
assume cs:code
main proc far
push ds
mov ax,0
push ax
mov ah,2
mov dl,'l'
int 21h
retmain endp
code ends
end main
5樓:做而論道
在程式的開始,bai
在堆疊中壓入了du兩次,分zhi別是ds和0;
在程式的末dao尾,使用了專ret,就用到了壓入屬的內容,這樣就能結束程式,安全的返回dos。
想要弄清這幾個操作,就必須瞭解「磁碟作業系統」,即dos才行。
這已經不是「組合語言」的內容了。
6樓:匿名使用者
壓棧保護,作業系統的規範,要了解其意義,就必須知道作業系統,這個是作業系統的程式設計的"標準"...當然不同的作業系統之間是不一樣的了,所以才說彙編是可移植性依存於系統的....
7樓:小裙裙
起到現場保護的作用,push ds是把ds壓入棧保護,,,,
什麼是組合語言,什麼是彙編和組合語言?
組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言.介於機器語言和高階語言之間的一種 什麼是彙編和組合語言?彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開...
彙編指令延時的精確解釋,組合語言延時程式怎麼解釋?
2 123 2 248us中,的 2即分別是指令mov r6,123 和指令nop各一秒,即是所內迴圈。248 2 200 1 50.001ms 中 2即是指令djnz r7,dly1的用時,248 2 200即外迴圈,最後那個 1即指令mov r7,200的用時,不是ret的用時。我也喜歡微控制器...
求大神幫我分析下這個組合語言程式源程式
這段 的功能是將資料段定義的 字元常量 string1中的字元 count 逐個複製到由string2的偏移量 string2的偏移量為 05h 開始的記憶體單元中,並輸出到顯示器上。因為 mov cx,10 設定的迴圈次數為10次 前五次的迴圈為 將字元常量 string1中的字元 count 逐...