1樓:
就在標題下面講的很清楚,ret指令時用堆疊中的資料修改ip的內容,實現近轉移。
retf指令時用堆疊中的資料修改cs和ip的內容,實現遠轉移。
你抄程式也錯,的細心啊,不然在調程式上會浪費很多時間的!)所以不難想象,這兩個 push的作用,push cs是cs段位址入棧,push ax是指執行retf是pop出的ip值也就是0(mov ax,0),實現遠跳。
至於這個bx在這沒什麼用,可能是從哪截過來的一段程式,這段程式旨在說明ret和retf,所以不用糾纏bx。
還有很重要的一點,想寫好彙編,你的學會使用debug。
好了就這麼多吧!
2樓:
mov ax,0 ;把0放入ax暫存器含義?
push 0是被允許的,但8086不可以,所以需要中轉。
push ax ;這個入棧有什麼作用?
與ret配合用於修改ip,即控制程式流,使其執行偏移0處的指令,在這裡就是返回os
mov bx,0 ;這個bx暫存器在這裡有什麼意思?
沒有什麼用,我確定!ret
誰曉得作者那時在想啥!
也許你需要參考該書的新版本或最新的勘誤表。
盡信書不如無書,多好的格言阿!
3樓:帳號已登出
我覺得現在的80x86彙編的書籍都是很扯淡的,其上面的程式是dos時代的程式,而且好像舉的例子不是沒有意義就是沒有輸出,看的很累。現在學彙編主要還是學的是那些指令,用不同的編譯器上面的偽操作是不同的。
我喜歡看羅雲斌的《windows32位組合語言程式設計》,雖然說專門指定的根本就沒有,不過好在我以前看過8086彙編,看起來還是簡單的。
一般我練習彙編**是在vc裡面寫的,這樣的話在c程式中嵌入彙編,把彙編的功能單獨寫乙個小的函式,讓c語言去呼叫,這樣跟蹤以及書寫都是很好的。
以前反彙編程式我看不懂,都是因為看了那個該死的80x86彙編,搞得我知道這句話是幹嘛的,具體整個程式是幹嘛的啥都不知道。
4樓:怕醉的蛇
程式執行時從start處執行,cs和0入棧,執行ret時,要出棧到cs:ip,cs=入棧的cs,即當前段位址,ip=入棧的0,所以,執行ret後,cs:ip指向cs:
0處的mov ax,4c00h,程式才能結束。至於那bx,貌似是沒用的。
彙編實驗程式
5樓:baby承諾依舊
你問的要源程式麼?問的不清楚,誰知道你問啥。
用匯編編寫如下程式
6樓:做而論道
通過外部中斷,設定標誌位。
顯示程式,根據標誌位,執行三個分支,即可。
c語言基礎,彙編小程式
7樓:防禦
#include
int main()
score=100*(l-mark)*;//採取百分制printf("正確:%d,錯誤:%d,分數:%.2lf",l-mark,mark,score);
return 0;
不明白可以繼續追問!(我在另一端等你)
彙編的資料反轉程式
8樓:網友
mov a,r7;把要反轉的數先賦給a
mov b,a ;把a賦給b,這是b就是要反轉的數mov c, ;把第0位先放到c裡面mov ,c ;再放到a的第7位裡,完成第0位的反轉mov c, ;把第1位先放到c裡面mov ,c ;再放到a的第6位裡,完成第1位的反轉,以下的依此類推。
mov c,mov ,c
mov c,mov ,c
mov c,mov ,c
mov c,mov ,c
mov c,mov ,c
mov c,mov ,c
mov r7,a ;最後把反轉完成的a放回原來的暫存器中ret ;彙編結束,返回c程式。
end ;程式檔案編譯結束。
希望幫到你。
一段彙編小程式,幫我轉成c語言,謝謝
9樓:網友
**不懂,挑重點諮詢我。
10樓:撒康勝
直接翻譯的結果。不是最優的哦。
unsigned char pwmh, pwm, counter, temp;
void isrt0(void) interrrupt ?
if (counter == pwm)
void main(void)
else if (pwmh >= 0x02)pwmh++;
continue;
if ( == 0)
if (pwmh == pwm)
pwmh--;
彙編子程式呼叫及返回
與子程式毫bai無關係。主程式du結構有毛病,有二 zhi 1 未給資料段 dao 堆疊內段暫存器賦值 容 2 mov bx,0b125h call showhex 之後,未直接結束程式,而是又繼續執行子程式。應該抄是襲這bai樣du的zhi daorlty dw 0 dseg ends cseg ...
微控制器(組合語言)程式,微控制器組合語言
開發當bai然是用c,又快又易懂好維 du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣乙個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本公升高時質量卻...
組合語言怎麼樣用子程式計算
子程式如下 內容 add proc near mov cx,10 mov bx,0 again mov ax,1 add bx,ax inc ax loop again add endpret 主要 xor cx,cx mov cl,10 xor ax,ax xor bx bx l1 inc ax ...