call 和 ret 指令都是轉移指令,它們修改ip,或同時修改cs和ip。
ret指令用棧中的資料,修改ip的內容,實現近轉移
retf指令用棧中的資料,修改cs和ip的內容,實現遠轉移。
ret指令相當於: pop ip
retf 指令相當於: pop ip
pop cs
call指令:(1)將當前的ip或cs和ip壓入棧
(2)轉移
call 標號(將當前ip壓棧,轉到標號處執行指令)
jmp near ptr 標號
call far ptr 標號 相於:
push cs
push ip
jmp far ptr 標號
相當於:
push ip
jmp 16位reg
call指令轉去執行子程式,ret返回。
**mul是乘法指令。**注意以下兩點
兩個相乘的數,兩個相乘的數,要麼都是8位,要麼都是16位。如果是八位,乙個預設放在al中,另乙個放在8位reg或記憶體位元組單元中;如果是16位,乙個預設在ax中,另乙個在16位reg中或記憶體字單元中。結果:如果是8位乘法,結果預設放在ax中;如果是16位乘法,結果高位預設放在dx中,低位放在ax中。
格式:mul reg
mul byte ptr
mul word ptr
用暫存器來儲存引數和結果是最常見的方法。
批量資料時,我們將批量資料放到記憶體中,然後將它們的所在空間的首位址放在暫存器中,傳遞給需要的子程式。對於有批量資料的返回結果,也用同樣的方法。
計算偏移量
push ax
mov ax,dx
mov dx,0 ;clear the dx of 16 bits higher than the divisor
div cx ;int(h / n)
mov bx,ax ;temporary high int (h / n) quotient,now dx is rem (h / n)
pop ax
div cx
mov cx,dx
mov dx,bx
把乙個數放在dx中即在高位暫存器,自動就乘了65536
十進位制數碼字元對應的ascii碼=十進位制數碼值+30h
十進位制數碼:
還需要調換位置!!! 筆記 組合語言 第10章 CALL和RET指令
10.0 概述 call和ret指令都是轉移指令,它們都修改ip,或同時修改cs和ip。它們經常被用來共同實現子程式的設計。10.1 ret和retf ret指令用棧中的資料,修改ip的內容,即相當於 pop ip retf指令用棧中的資料,修改cs和ip的內容,即相當於 pop ip pop cs...
筆記 組合語言 第14章 埠
14.0 概述 pc機系統中,和cpu通過匯流排相連的晶元除了各種儲存器外,還有以下3種晶元 1 各種介面卡 如網絡卡,顯示卡 上的的介面晶元,它們控制介面卡進行工作 2 主機板上的介面晶元,cpu通過他們對部分外設進行訪問 3 其他晶元,用來儲存相關的系統資訊,或進行相關的輸入輸出處理 在這些晶元...
組合語言 第14章
第十四章 埠 pc機中,和cpu通過匯流排相連的晶元除了各種暫存器外,還有以下三種晶元 1 各種介面卡 如網絡卡 顯示卡 上的介面晶元,他們控制介面卡進行工作 2 主機板上的介面晶元,cpu通過他們對部分外設進行訪問 3 其他晶元,用來儲存相關系統資訊,或進行相關的輸入輸出處理。上述三種晶元都有一組...