




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編語言課件本課件由匯編網(wǎng)()制作提供本課件由匯編網(wǎng)()制作提供第10章 call 和 ret 指令n10.1 ret 和 retfn10.2 call 指令n10.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的call指令n10.4 轉(zhuǎn)移的目的地址在指令中的call指令n10.5 轉(zhuǎn)移地址在寄存器中的call指令n10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n10.7 call 和 ret 的配合使用n10.8 mul 指令n10.9 模塊化程序設(shè)計n10.10 參數(shù)和結(jié)果傳遞的問題n10.11 批量數(shù)據(jù)的傳遞n10.12 寄存器沖突的問題本課件由匯編網(wǎng)()制作提供引言ncall和ret 指令都是轉(zhuǎn)移指令,它們都修改I
2、P,或同時修改CS和IP。n它們經(jīng)常被共同用來實現(xiàn)自程序的設(shè)計。n這一章,我們講解call和ret 指令的原理。本課件由匯編網(wǎng)()制作提供10.1 ret 和 retfnret指令用棧中的數(shù)據(jù),修改IP的內(nèi)容,從而實現(xiàn)近轉(zhuǎn)移;n操作nretf指令用棧中的數(shù)據(jù),修改CS和IP的內(nèi)容,從而實現(xiàn)遠(yuǎn)轉(zhuǎn)移;n操作本課件由匯編網(wǎng)()制作提供10.1 ret 和 retfnCPU執(zhí)行ret指令時,進(jìn)行下面兩步操作:n(1)(IP)=(ss)*16+(sp)n(2)(sp)=(sp)+2本課件由匯編網(wǎng)()制作提供10.1 ret 和 retfnCPU執(zhí)行retf指令時,進(jìn)行下面兩步操作:n(1)(IP)=(s
3、s)*16+(sp)n(2)(sp)=(sp)+2n(3)(CS)=(ss)*16+(sp)n(4)(sp)=(sp)+2本課件由匯編網(wǎng)()制作提供10.1 ret 和 retfn可以看出,如果我們用匯編語法來解釋ret和retf指令,則:nCPU執(zhí)行ret指令時,相當(dāng)于進(jìn)行: pop IPnCPU執(zhí)行retf指令時,相當(dāng)于進(jìn)行: pop IP pop CS本課件由匯編網(wǎng)()制作提供10.1 ret 和 retfn示例程序nret指令 程序中ret指令執(zhí)行后,(IP)=0,CS:IP指向代碼段的第一條指令。nretf指令 程序中retf指令執(zhí)行后,CS:IP指向代碼段的第一條指令。本課件由匯編
4、網(wǎng)()制作提供特別提示n檢測點(diǎn)10.1(p179)n沒有完成此檢測點(diǎn),請不要向下進(jìn)行。本課件由匯編網(wǎng)()制作提供10.2 call 指令nCPU執(zhí)行call指令,進(jìn)行兩步操作:n(1)將當(dāng)前的 IP 或 CS和IP 壓入棧中;n(2)轉(zhuǎn)移。ncall 指令不能實現(xiàn)短轉(zhuǎn)移,除此之外,call指令實現(xiàn)轉(zhuǎn)移的方法和 jmp 指令的原理相同,下面的幾個小節(jié)中 ,我們以給出轉(zhuǎn)移目的地址的不同方法為主線,講解call指令的主要應(yīng)用格式。本課件由匯編網(wǎng)()制作提供10.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的call指令ncall 標(biāo)號(將當(dāng)前的 IP 壓棧后,轉(zhuǎn)到標(biāo)號處執(zhí)行指令)nCPU執(zhí)行此種格式的call指令時,進(jìn)行如
5、下的操作:n(1) (sp) = (sp) 2 (ss)*16+(sp) = (IP)n(2) (IP) = (IP) + 16位位移本課件由匯編網(wǎng)()制作提供10.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的call指令ncall 標(biāo)號n16位位移=“標(biāo)號”處的地址call指令后的第一個字節(jié)的地址;n16位位移的范圍為 -3276832767,用補(bǔ)碼表示;n16位位移由編譯程序在編譯時算出。n演示本課件由匯編網(wǎng)()制作提供本課件由匯編網(wǎng)()制作提供10.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的call指令n從上面的描述中,可以看出,如果我們用匯編語法來解釋此種格式的 call指令,則: CPU 執(zhí)行指令“call 標(biāo)號”時,相當(dāng)于
6、進(jìn)行: push IP jmp near ptr 標(biāo)號 本課件由匯編網(wǎng)()制作提供特別提示n檢測點(diǎn)10.2(p181)n沒有完成此檢測點(diǎn),請不要向下進(jìn)行。本課件由匯編網(wǎng)()制作提供10.4 轉(zhuǎn)移的目的地址在指令中的call指令n前面講解的call指令,其對應(yīng)的機(jī)器指令中并沒有轉(zhuǎn)移的目的地址 ,而是相對于當(dāng)前IP的轉(zhuǎn)移位移。n指令“call far ptr 標(biāo)號”實現(xiàn)的是段間轉(zhuǎn)移。n操作本課件由匯編網(wǎng)()制作提供10.4 轉(zhuǎn)移的目的地址在指令中的call指令nCPU執(zhí)行“call far ptr 標(biāo)號”這種格式的call指令時的操作:n(1) (sp) = (sp) 2 (ss) 16+(sp)
7、 = (CS) (sp) = (sp) 2 (ss) 16+(sp) = (IP)n(2) (CS) = 標(biāo)號所在的段地址 (IP) = 標(biāo)號所在的偏移地址本課件由匯編網(wǎng)()制作提供10.4 轉(zhuǎn)移的目的地址在指令中的call指令n從上面的描述中可以看出,如果我們用匯編語法來解釋此種格式的 call 指令,則: CPU 執(zhí)行指令 “call far ptr 標(biāo)號” 時,相當(dāng)于進(jìn)行: push CS push IP jmp far ptr 標(biāo)號本課件由匯編網(wǎng)()制作提供特別提示n檢測點(diǎn)10.3(p181)n沒有完成此檢測點(diǎn),請不要向下進(jìn)行。本課件由匯編網(wǎng)()制作提供10.5 轉(zhuǎn)移地址在寄存器中的c
8、all指令n指令格式:call 16位寄存器n功能:n(sp) = (sp) 2n(ss)*16+(sp) = (IP)n(IP) = (16位寄存器) 本課件由匯編網(wǎng)()制作提供10.5 轉(zhuǎn)移地址在寄存器中的call指令n指令格式:call 16位寄存器n匯編語法解釋此種格式的 call 指令,CPU執(zhí)行call 16位reg時,相當(dāng)于進(jìn)行: push IP jmp 16位寄存器本課件由匯編網(wǎng)()制作提供特別提示n檢測點(diǎn)10.4(p182)n沒有完成此檢測點(diǎn),請不要向下進(jìn)行。本課件由匯編網(wǎng)()制作提供10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n轉(zhuǎn)移地址在內(nèi)存中的call指令有兩種格式:n(1)
9、 call word ptr 內(nèi)存單元地址n (2) call dword ptr 內(nèi)存單元地址本課件由匯編網(wǎng)()制作提供10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n(1) call word ptr 內(nèi)存單元地址n匯編語法解釋: push IP jmp word ptr 內(nèi)存單元地址n示例本課件由匯編網(wǎng)()制作提供10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n(1) call word ptr 內(nèi)存單元地址(示例)n比如下面的指令: mov sp,10h mov ax,0123h mov ds:0,ax call word ptr ds:0執(zhí)行后,(IP)=0123H,(sp)=0EH本課件由匯編
10、網(wǎng)()制作提供10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n(2) call dword ptr 內(nèi)存單元地址n匯編語法解釋: push CS push IP jmp dword ptr 內(nèi)存單元地址n示例本課件由匯編網(wǎng)()制作提供10.6 轉(zhuǎn)移地址在內(nèi)存中的call指令n(2) call dword ptr 內(nèi)存單元地址(示例)n 比如,下面的指令: mov sp,10h mov ax,0123h mov ds:0,ax mov word ptr ds:2,0 call dword ptr ds:0 執(zhí)行后,(CS)=0,(IP)=0123H,(sp)=0CH本課件由匯編網(wǎng)()制作提供特別提示n
11、檢測點(diǎn)10.5(p183)n沒有完成此檢測點(diǎn),請不要向下進(jìn)行。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n前面,我們已經(jīng)分別學(xué)習(xí)了 ret 和call指令的原理?,F(xiàn)在我們看一下,如何將它們配合使用來實現(xiàn)子程序的機(jī)制。n問題10.1本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用assume cs:codecode segmentstart: mov ax,1 mov cx,3 call s mov bx,ax;(bx) = ? mov ax,4c00h int 21h s: add ax,ax loop s retcode endsend star
12、tn問題10.1 右面程序返回前,bx中的值是多少? 思考后看分析。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n問題10.1分析 我們來看一下 CPU 執(zhí)行這個程序的主要過程:n(1)CPU 將call s指令的機(jī)器碼讀入,IP指向了call s后的指令mov bx,ax,然后CPU執(zhí)行call s指令,將當(dāng)前的 IP值(指令mov bx,ax的偏移地址)壓棧,并將 IP 的值改變?yōu)闃?biāo)號 s處的偏移地址;n(2)CPU從標(biāo)號 s 處開始執(zhí)行指令,loop循環(huán)完畢,(ax)=8;本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n問題10.1分析(續(xù))
13、 我們來看一下CPU執(zhí)行這個程序的主要過程:n(3)CPU將ret指令的機(jī)器碼讀入,IP指向了ret 指令后的內(nèi)存單元,然后CPU 執(zhí)行 ret 指令 ,從棧中彈出一個值(即 call 先前壓入的mov bx,ax 指令的偏移地址)送入 IP 中。則CS:IP指向指令mov bx,ax;n(4)CPU從 mov bx,ax 開始執(zhí)行指令,直至完成。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n問題10.1分析(續(xù)) 程序返回前,(bx)=8 。我們可以看出,從標(biāo)號s 到ret的程序段的作用是計算2的N次方,計算前,N的值由CX提供。n我們再來看下面的程序本課件由匯編網(wǎng)(
14、)制作提供10.7 call 和 ret 的配合使用本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n我們看一下程序的主要執(zhí)行過程:n(1)前三條指令執(zhí)行后,棧的情況如下:本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n程序的主要執(zhí)行過程:n(2)call 指令讀入后,(IP) =000EH,CPU指令緩沖器中的代碼為 B8 05 00; CPU執(zhí)行B8 05 00,首先,棧中的情況變?yōu)椋?然后,(IP)=(IP)+0005=0013H。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n程序的主要執(zhí)行過程:n(3)CPU從cs:00
15、13H處(即標(biāo)號s處)開始執(zhí)行。n(4)ret指令讀入后:(IP)=0016H,CPU指令緩沖器中的代碼為 C3;CPU執(zhí)行C3,相當(dāng)于進(jìn)行pop IP,執(zhí)行后,棧中的情況為: (IP)=000EH;本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n程序的主要執(zhí)行過程:n(5)CPU回到 cs:000EH處(即call指令后面的指令處)繼續(xù)執(zhí)行。n從上面的討論中我們發(fā)現(xiàn),可以寫一個具有一定功能的程序段,我們稱其為子程序,在需要的時候,用call指令轉(zhuǎn)去執(zhí)行。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n可是執(zhí)行完子程序后,如何讓CPU接著call指令
16、向下執(zhí)行?ncall指令轉(zhuǎn)去執(zhí)行子程序之前,call指令后面的指令的地址將存儲在棧中,所以可以在子程序的后面使用 ret 指令,用棧中的數(shù)據(jù)設(shè)置IP的值,從而轉(zhuǎn)到 call 指令后面的代碼處繼續(xù)執(zhí)行。本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n這樣,我們可以利用call和ret來實現(xiàn)子程序的機(jī)制。n子程序的框架本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n子程序的框架: 標(biāo)號: 指令 retn具有子程序的源程序的框架:本課件由匯編網(wǎng)()制作提供10.7 call 和 ret 的配合使用n現(xiàn)在,可以從子程序的角度,回過頭來再看一下本節(jié)中的兩個程序
17、。本課件由匯編網(wǎng)()制作提供10.8 mul 指令n因下面要用到,我們介紹一下mul指令,mul是乘法指令,使用 mul 做乘法的時候:n(1)相乘的兩個數(shù):要么都是8位,要么都是16位。 8 位: AL中和 8位寄存器或內(nèi)存字節(jié)單元中; 16 位: AX中和 16 位寄存器或內(nèi)存字單元中。本課件由匯編網(wǎng)()制作提供10.8 mul 指令n使用mul座乘法的時候:n(2)結(jié)果 8位:AX中; 16位:DX(高位)和AX(低位)中。n格式如下: mul reg mul 內(nèi)存單元本課件由匯編網(wǎng)()制作提供10.8 mul 指令n內(nèi)存單元可以用不同的尋址方式給出,比如:nmul byte ptr d
18、s:0 含義為: (ax)=(al)*(ds)*16+0);nmul word ptr bx+si+8 含義為: (ax)=(al)*(ds)*16+(bx)+(si)+8)結(jié)果的低16位; (dx)=(al)*(ds)*16+(bx)+(si)+8)結(jié)果的高16位;本課件由匯編網(wǎng)()制作提供10.8 mul 指令n例如:n(1)計算100*10 100和10小于255,可以做8位乘法,程序如下: mov al,100 mov bl,10 mul bl 結(jié)果: (ax)=1000(03E8H) 本課件由匯編網(wǎng)()制作提供10.8 mul 指令n例如:n(1)計算100*10000 100小于2
19、55,可10000大于255,所以必須做16位乘法,程序如下: mov ax,100 mov bx,10000 mul bx 結(jié)果: (ax)=4240H,(dx)=000FH (F4240H=1000000)本課件由匯編網(wǎng)()制作提供10.9 模塊化程序設(shè)計n從上面我們看到 ,call 與 ret 指令共同支持了匯編語言編程中的模塊化設(shè)計。在實際編程中,程序的模塊化是必不可少的。n因為現(xiàn)實的問題比較復(fù)雜,對現(xiàn)實問題進(jìn)行分析時,把它轉(zhuǎn)化成為相互聯(lián)系、不同層次的子問題,是必須的解決方法。本課件由匯編網(wǎng)()制作提供10.9 模塊化程序設(shè)計n而call和ret 指令對這種分析方法提供了程序?qū)崿F(xiàn)上的支
20、持。利用 call和ret指令,我們可以用簡潔的方法,實現(xiàn)多個互相聯(lián)系、功能獨(dú)立的子程序來解決一個復(fù)雜的問題。n下面的內(nèi)容中,我們來看一下子程序設(shè)計中的相關(guān)問題和解決方法。本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n子程序一般都要根據(jù)提供的參數(shù)處理一定的事務(wù),處理后,將結(jié)果(返回值)提供給調(diào)用者。n其實,我們討論參數(shù)和返回值傳遞的問題,實際上就是在探討,應(yīng)該如何存儲子程序需要的參數(shù)和產(chǎn)生的返回值。 本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n我們設(shè)計一個子程序,可以根據(jù)提供的N,來計算N的3次方。n這里有兩個問題:n(1)我們將參數(shù)N存儲在什么地方?n(2)計算
21、得到的數(shù)值,我們存儲在什么地方?本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n很顯然,我們可以用寄存器來存儲,可以將參數(shù)放到 bx 中 ;因為子程序中要計算 NNN ,可以使用多個 mul 指令,為了方便,可將結(jié)果放到 dx 和 ax中。n子程序本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n子程序:n說明:計算N的3次方n參數(shù): (bx)=Nn結(jié)果: (dx:ax)=N3 cube:mov ax,bx mul bx mul bx ret本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n注意,我們在編程的時候要注意良好的風(fēng)格,對于程序應(yīng)有詳細(xì)的注釋。子程序的
22、注釋信息應(yīng)該包含對子程序的功能、參數(shù)和結(jié)果的說明。n因為今天寫的子程序,以后可能還會用到;自己寫的子程序,也很可能要給別人使用,所以一定要有全面的說明。 本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n用寄存器來存儲參數(shù)和結(jié)果是最常使用的方法。對于存放參數(shù)的寄存器和存放結(jié)果的寄存器,調(diào)用者和子程序的讀寫操作恰恰相反:n調(diào)用者將參數(shù)送入?yún)?shù)寄存器,從結(jié)果寄存器中取到返回值;n子程序從參數(shù)寄存器中取到參數(shù),將返回值送入結(jié)果寄存器。 本課件由匯編網(wǎng)()制作提供10.10 參數(shù)和結(jié)果傳遞的問題n編程:計算data段中第一組數(shù)據(jù)的 3 次方,結(jié)果保存在后面一組dword單元中。 assume
23、 cs:code data segment dw 1,2,3,4,5,6,7,8 dd 0,0,0,0,0,0,0,0 data endsn我們可以用到已經(jīng)寫好的子程序 程序代碼本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n前面的例程中,子程序 cube 只有一個參數(shù),放在bx中。如果有兩個參數(shù),那么可以用兩個寄存器來放,可是如果需要傳遞的數(shù)據(jù)有3個、4個或更多直至 N個,我們怎樣存放呢?n寄存器的數(shù)量終究有限,我們不可能簡單地用寄存器來存放多個需要傳遞的數(shù)據(jù)。對于返回值,也有同樣的問題。本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n在這種時候,我們將批量數(shù)據(jù)放到內(nèi)存中,然后將
24、它們所在內(nèi)存空間的首地址放在寄存器中,傳遞給需要的子程序。n對于具有批量數(shù)據(jù)的返回結(jié)果,也可用同樣的方法。 本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n我們看一個例子,設(shè)計子程序n功能:將一個全是字母的字符串轉(zhuǎn)化為大寫。n分析n子程序本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n將一個全是字母的字符串轉(zhuǎn)化為大寫。n分析 這個子程序需要知道兩件事,字符串的內(nèi)容和字符串的長度。因為字符串中的字母可能很多,所以我們不便將整個字符串中的所有字母都直接傳遞給子程序。本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n將一個全是字母的字符串轉(zhuǎn)化為大寫。n分析(續(xù)) 但是,我們可以將字符
25、串在內(nèi)存中的首地址放在寄存器中傳遞給子程序。因為子程序中要用到循環(huán),我們可以用 loop 指令,而循環(huán)的次數(shù)恰恰就是字符串的長度。出于方便的考慮,可以將字符串的長度放到cx中。 本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n編程:將data段中的字符串轉(zhuǎn)化為大寫。 assume cs:code data segment db conversation data ends code segment start: code ends end start本課件由匯編網(wǎng)()制作提供10.11 批量數(shù)據(jù)的傳遞n編程:將data段中的字符串轉(zhuǎn)化為大寫。n源程序代碼n注意:除了寄存器傳遞參數(shù)外,還有
26、一種通用的方法使用棧來傳遞參數(shù)。關(guān)于這種技巧請參看附注4。本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n設(shè)計一個子程序:n功能:將一個全是字母,以0結(jié)尾的字符串,轉(zhuǎn)化為大寫。n程序要處理的字符串以0作為結(jié)尾符,這個字符串可以如下定義:n db conversation,0本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n設(shè)計一個子程序:n功能:將一個全是字母,以0結(jié)尾的字符串,轉(zhuǎn)化為大寫。n分析 應(yīng)用這個子程序 ,字符串的內(nèi)容后面定要有一個0,標(biāo)記字符串的結(jié)束。子程序可以依次讀取每個字符進(jìn)行檢測,如果不是0,就進(jìn)行大寫的轉(zhuǎn)化,如果是0,就結(jié)束處理。 由于可通過檢測0而知道是否己
27、經(jīng)處理完整個字符串 ,所以子程序可以不需要字符串的長度作為參數(shù)。我們可以用jcxz來檢測0。 本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n子程序設(shè)計:n說明:將一個全是字母,以0結(jié)尾的字符串,轉(zhuǎn)化為大寫。n參數(shù):ds:si指向字符串的首地址;n結(jié)果:沒有返回值。n子程序代碼n我們來看一下這個子程序的應(yīng)用本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n子程序代碼本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n程序的應(yīng)用n(1)將data段中字符串轉(zhuǎn)化為大寫 assume cs:code data segment db conversation,0 data endsn
28、代碼段中相關(guān)程序段如下: mov ax,data mov ds,ax mov si,0 call capital本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n子程序的應(yīng)用n(2)將data段中字符串全部轉(zhuǎn)化為大寫 assume cs:code data segment db word,0 db unix,0 db wind,0 db good,0 data endsn可以看到,所有字符串的長度都是5(算上結(jié)尾符 0 ),我們使用循環(huán) ,重復(fù)調(diào)用子程序capital完成對4個字符串的處理。n完整的程序代碼本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n問題10.2 前面的程序在
29、思想上完全正確,但在細(xì)節(jié)上卻有些錯誤,把錯誤找出來。 思考后看分析。本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n問題10.2分析 問題在于cx的使用,主程序要使用cx記錄循環(huán)次數(shù),可是子程序中也使用了cx,在執(zhí)行子程序的時候,cx中保存的循環(huán)計數(shù)值被改變,使得主程序的循環(huán)出錯。 從上而的問題中,實際上引出了個一般化的問題:子程序中使用的寄存器,很可能在主程序中也要使用,造成了寄存器使用上的沖突。本課件由匯編網(wǎng)()制作提供10.12 寄存器沖突的問題n問題10.2分析(續(xù)) 那么我們?nèi)绾蝸肀苊膺@種沖突呢 ?粗略地看,我們可以有兩個方案:n(1)在編寫調(diào)用子程序的程序時 ,注意看看子程序中有沒有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 足球訓(xùn)練科技的發(fā)展與團(tuán)隊配合、個人技巧的進(jìn)步
- 跨文化背景下的節(jié)日慶祝習(xí)慣比較研究
- 零售業(yè)資產(chǎn)證券化的策略與實踐
- 跨區(qū)域醫(yī)療資源分配與醫(yī)養(yǎng)服務(wù)網(wǎng)絡(luò)構(gòu)建
- 質(zhì)量提升關(guān)鍵點(diǎn)之一-對標(biāo)行業(yè)標(biāo)桿的血檢儀器如精準(zhǔn)度保持措施詳解
- 廣西2025年01月廣西壯族自治區(qū)衛(wèi)生健康對外交流合作中心2025年招考工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 跨文化背景下電商平臺的發(fā)展策略
- 四年級數(shù)學(xué)下冊折線統(tǒng)計圖教案蘇教版
- 高中語文情感美文不要隨便牽手更不隨便放手
- 高效的時間管理卓越的演講表現(xiàn)
- 利那洛肽治療便秘病例
- 部編版小學(xué)語文四年級下冊第二單元教材分析
- 2024年OTC焊接機(jī)器人基本操作培訓(xùn)
- 參考消息電子版在線閱讀(角度區(qū))
- 小學(xué)五年級《美術(shù)》上冊知識點(diǎn)匯總
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2016-2023年湖南鐵路科技職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2023南頭古城項目簡介招商手冊
- 機(jī)修知識培訓(xùn)教材課件
- 跨云平臺的DevOps集成
- 小學(xué)綜合實踐活動《察探究活動跟著節(jié)氣去探究》課教案
評論
0/150
提交評論