微機(jī)原理實(shí)驗(yàn)報(bào)告_第1頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告_第2頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告_第3頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告_第4頁(yè)
微機(jī)原理實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 顯示程序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康?. 掌握在pc機(jī)上以十六進(jìn)制形式顯示數(shù)據(jù)的方法;2. 掌握部分dos功能調(diào)用使用方法;3. 熟悉tddebug調(diào)試環(huán)境和turbo debugger的使用。二、實(shí)驗(yàn)所用設(shè)備1. pc微機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容一般來(lái)說(shuō),程序需要顯示輸出提示運(yùn)行的狀況和結(jié)果,有的還需要將數(shù)據(jù)區(qū)中的內(nèi)容顯示在屏幕上。本實(shí)驗(yàn)要求將指定數(shù)據(jù)區(qū)的數(shù)據(jù)以十六進(jìn)制數(shù)形式顯示在屏幕上,并通過(guò)dos功能調(diào)用完成一些提示信息的顯示。實(shí)驗(yàn)中可使用dos功能調(diào)用(int 21h)。(1) 顯示單個(gè)字符輸出 入口:ah=02h 調(diào)用參數(shù):dl=輸出字符 (2) 顯示字符串 入口:ah=09h 調(diào)用參數(shù):ds

2、:dx=串地址,$為結(jié)束字符 (3) 鍵盤(pán)輸入并回顯 入口:ah=01h 返回參數(shù):al=輸出字符 (4) 返回dos系統(tǒng) 入口:ah=4ch 調(diào)用參數(shù):al=返回碼四、實(shí)驗(yàn)步驟1. 運(yùn)行tddebug軟件,選擇edit菜單,根據(jù)實(shí)驗(yàn)內(nèi)容的描述編寫(xiě)實(shí)驗(yàn)程序,本實(shí)驗(yàn)顯示部分參考實(shí)驗(yàn)流程如圖1-1示; 2. 使用compile菜單中的compile和link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接; 3. 使用rmrun菜單中的run,運(yùn)行程序,觀察運(yùn)行結(jié)果; 4. 使用rmrun菜單中的debug,調(diào)試程序,觀察調(diào)試過(guò)程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容; 5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性

3、。 圖1-1 顯示程序?qū)嶒?yàn)流程圖五、參考程序清單data segment mes db show a as hex:, 0ah,0dh,$ sd db a data ends code segment assume cs:code, ds:datastart: mov ax, data movds, ax mov dx, offset mes ;顯示提示信息 mov ah, 09h int 21h mov di, offset sd moval, ds:di and al, 0f0h ;取高4位 shr al,4 cmp al, 0ah ;是否是a以上的數(shù) jb c2 add al, 07h

4、c2: add al, 30h mov dl, al ;顯示字符 mov ah, 02h int 21h mov al, ds:di and al, 0fh ;取低4位 cmp al, 0ah jb c3 add al, 07h c3: add al, 30h mov dl, al ;顯示字符 mov ah, 02h int 21h mov ax, 4c00h ;返回dos int 21h code ends end start 六、實(shí)驗(yàn)報(bào)告內(nèi)容及要求1.打開(kāi)應(yīng)用軟件,參考實(shí)驗(yàn)程序。2.保存程序,編譯,鏈接,生成。3運(yùn)行成功,在dos環(huán)境下顯示為: 七、實(shí)驗(yàn)思考 對(duì)pc機(jī)上以十六進(jìn)制形式顯示數(shù)

5、據(jù)的方法有一定了解,了解了dos功能調(diào)用使用,熟悉了調(diào)試環(huán)境和turbo debugger的使用。實(shí)驗(yàn)二 數(shù)據(jù)傳送實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 熟悉tddebug調(diào)試環(huán)境和turbo debugger的使用; 2. 掌握與數(shù)據(jù)有關(guān)的不同尋址方式。 二、實(shí)驗(yàn)所用設(shè)備1. pc微機(jī)一臺(tái)。 三、實(shí)驗(yàn)內(nèi)容將數(shù)據(jù)段中的一個(gè)字符串傳送到附加段中,并輸出附加段中的目標(biāo)字符串到屏幕上。參考實(shí)驗(yàn)程序: ddata segment ;定義源數(shù)據(jù)段 msr db hello,world!$ len equ $- msr ddata ends exda segment ;定義附加數(shù)據(jù)段 msd dblen dup(?) ex

6、da ends mystack segment stack ;定義堆棧段 dw 20 dup(?) mystack ends code segment ;定義代碼段 assume cs:code, ds:ddata, es:exda start: mov ax, ddata mov ds, ax ;裝載數(shù)據(jù)段寄存器 mov ax, exda mov es,ax ;裝載附加數(shù)據(jù)段寄存器 mov si, offset msr ;設(shè)置si mov di, offset msd ;設(shè)置di mov cx, len next: mov al, si ;開(kāi)始傳輸數(shù)據(jù)mov es:di, al inc si

7、 inc di dec cx jnz next push es pop ds ;將附加段寄存器的段值賦給數(shù)據(jù)段寄存器 mov dx, offset msd mov ah, 9 int 21h mov ax, 4c00h ;利用dos功能調(diào)用返回dos狀態(tài) int 21h code ends end start將程序主體部分的寄存器間接尋址方式改為相對(duì)尋址方式,則如下所示: mov bx, 0 mov cx, len next: mov al, msrbx mov es:msdbx, al inc bx loop next 四、實(shí)驗(yàn)步驟1. 運(yùn)行tddebug軟件,選擇edit菜單編寫(xiě)實(shí)驗(yàn)程序;

8、 2. 使用compile菜單中的compile和link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接;3. 使用rmrun菜單中的run,運(yùn)行程序,觀察運(yùn)行結(jié)果; 4. 使用rmrun菜單中的debug,調(diào)試程序,觀察調(diào)試過(guò)程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容; 5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 五、實(shí)驗(yàn)報(bào)告內(nèi)容及要求 在應(yīng)用環(huán)境下調(diào)試,鏈接,運(yùn)行程序。顯示出的程序結(jié)果:六、實(shí)驗(yàn)思考 進(jìn)一步熟悉了tddebug調(diào)試環(huán)境和turbo debugger的使用, 了解和掌握與數(shù)據(jù)有關(guān)的不同尋址方式。實(shí)驗(yàn)三 數(shù)碼轉(zhuǎn)換程序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康恼莆詹煌M(jìn)制數(shù)及編碼相互轉(zhuǎn)換的程序設(shè)計(jì)方法。 二、實(shí)驗(yàn)所用設(shè)

9、備pc微機(jī)一臺(tái)。 三、實(shí)驗(yàn)內(nèi)容計(jì)算機(jī)輸入設(shè)備輸入的信息一般是由ascii碼或bcd碼表示的數(shù)據(jù)或字符,cpu用二進(jìn)制數(shù)進(jìn)行計(jì)算或其它信息處理,處理結(jié)果的輸出又必須依照外設(shè)的要求變?yōu)閍scii碼、bcd碼或七段顯示碼等。因此,在應(yīng)用軟件中,各類(lèi)數(shù)制的轉(zhuǎn)換和代碼的轉(zhuǎn)換是必不可少的。計(jì)算機(jī)與外設(shè)間的數(shù)碼轉(zhuǎn)換關(guān)系如圖3-1所示,數(shù)碼對(duì)應(yīng)關(guān)系如表3-1所示。圖3-1 計(jì)算機(jī)與外設(shè)間的數(shù)碼轉(zhuǎn)換關(guān)系1將ascii碼表示的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 十進(jìn)制數(shù)可以表示為:dn10n+dn-110n-1+d0100=di10i 其中di代表十進(jìn)制數(shù)1、2、39、0。 上式可以轉(zhuǎn)換為:di10i=(dn10+dn-1)

10、10)+dn-2)10+d1)10+d0 由上式可歸納十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制的方法:從十進(jìn)制數(shù)的最高位dn開(kāi)始作乘10加次位的操作,依次類(lèi)推,則可求出二進(jìn)制數(shù)結(jié)果。 本實(shí)驗(yàn)要求將緩沖區(qū)中的一個(gè)五位十進(jìn)制數(shù)00012的ascii碼轉(zhuǎn)換成二進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果按位顯示在屏幕上。轉(zhuǎn)換過(guò)程的參考流程如圖3-2所示。表3-1 數(shù)碼轉(zhuǎn)換對(duì)應(yīng)關(guān)系 2將十進(jìn)制數(shù)的ascii碼轉(zhuǎn)換為bcd碼 本實(shí)驗(yàn)要求將鍵盤(pán)輸入的一個(gè)五位十進(jìn)制數(shù)54321的ascii碼存放入數(shù)據(jù)區(qū)中,轉(zhuǎn)換為 bcd 碼后,并將轉(zhuǎn)換結(jié)果按位分別顯示于屏幕上。若輸入的不是十進(jìn)制數(shù)的ascii碼,則輸出“ff”。提示:一字節(jié)ascii碼取其低四位即變

11、為bcd碼。轉(zhuǎn)換部分的實(shí)驗(yàn)流程參見(jiàn)3-3。 3將十六進(jìn)制數(shù)的ascii碼轉(zhuǎn)換為十進(jìn)制數(shù) 十六位二進(jìn)制數(shù)的值域?yàn)?-65535,最大可轉(zhuǎn)換為五位十進(jìn)制數(shù)。五位十進(jìn)制數(shù)可表示為:nd=d4104+d3103+d2102+d110+d0 因此,將十六位二進(jìn)制數(shù)轉(zhuǎn)換為五位ascii碼表示的十進(jìn)制數(shù),就是求d1-d4,并將它們轉(zhuǎn)化為ascii碼。圖3-2 十進(jìn)制ascii轉(zhuǎn)換為二進(jìn)制數(shù)參考流程圖3-3 十進(jìn)制ascii轉(zhuǎn)換為bcd碼參考流程 本實(shí)驗(yàn)要求將緩沖區(qū)中存放的000ch的ascii碼轉(zhuǎn)換成十進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果顯示在屏幕上。轉(zhuǎn)換部分的實(shí)驗(yàn)流程參見(jiàn)圖3-4。4bcd碼轉(zhuǎn)換為二進(jìn)制碼 本實(shí)驗(yàn)要求將四

12、個(gè)二位十進(jìn)制數(shù)的bcd碼存放在某一內(nèi)存單元中,轉(zhuǎn)換出的二進(jìn)制數(shù)碼存入其后的內(nèi)存單元中,轉(zhuǎn)換結(jié)束,送屏幕顯示。轉(zhuǎn)換部分的實(shí)驗(yàn)流程參見(jiàn)3-5。 四、實(shí)驗(yàn)步驟1. 運(yùn)行tddebug軟件,選擇edit菜單編寫(xiě)實(shí)驗(yàn)程序; 2. 使用compile菜單中的compile和link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接; 3. 使用rmrun菜單中的run,運(yùn)行程序,觀察運(yùn)行結(jié)果; 4. 使用rmrun菜單中的debug,調(diào)試程序,觀察調(diào)試過(guò)程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容;5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。圖3-4 將十六進(jìn)制數(shù)的ascii碼轉(zhuǎn)換為十進(jìn)制數(shù)參考流程 圖3-5 bcd碼轉(zhuǎn)換為二

13、進(jìn)制碼參考流程 五、實(shí)驗(yàn)報(bào)告內(nèi)容及要求根據(jù)流程圖編寫(xiě)程序并調(diào)試,寫(xiě)出程序調(diào)試過(guò)程及運(yùn)行情況。1將ascii碼表示的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 程序:data segment buffer db 00012 data endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buffer mov cx,5 mov al,0 begin: mov dx,0ah mov bl,si sub bl,30h mul dx add al,bl inc si loop begin mov cx,8 mov bl,al

14、loop1: rol bl,1 mov dl,bl and dl,01h add dl,30h mov ah,02h int 21h loop loop1 mov ax,4c00h int 21h code ends end start程序結(jié)果為:000011002將十進(jìn)制數(shù)的ascii碼轉(zhuǎn)換為bcd碼 data segment buffer db 5 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buffer mov cx,5 mov ah,1h mov bx,

15、0ffh loop1: int 21h mov si,al inc si loop loop1 mov ah,02h mov dl,0ah int 21h mov dl,0dh int 21h mov cx,5 lea si,buffer loop2: mov di,4 mov bl,si cmp bl,0 jb error cmp bl,9 ja error sub bl,30h rol bl,4 loop4: rol bl,1 mov dl,bl and dl,01h add dl,30h mov ah,02h int 21h dec di jnz loop4 inc si loop lo

16、op2 jmp end error: and bl,0fh add bl,a mov dl,bl mov ah,02h int 21h int 21h end: mov ax,4c00h int 21h code ends end start程序結(jié)果:010101000011001000013將十六進(jìn)制數(shù)的ascii碼轉(zhuǎn)換為十進(jìn)制數(shù) data segment buffer db 000ch res db 5 dup(?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buffe

17、r mov cx,4 mov ax,0 mov bx,0 begin: mov dx,16 mov bl,si cmp bx,9 jna mark1 sub bx,a add bx,10 jmp mark2 mark1: sub bx,0 mark2: mul dx add ax,bx inc si loop begin mov bx,10 lea si,res+4 loop1: div bx add dl,0 mov si,dl dec si cmp ax,10 jae loop1 add al,0 mov si,al lea si,res mov cx,5 mov ah,02h loop2

18、: mov dl,si int 21h inc si loop loop2 code ends end start程序結(jié)果:124bcd碼轉(zhuǎn)換為二進(jìn)制碼 data segment d1 db 12h,34h,56h,78h c1 equ $-d1 d2 db c1 dup (?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ch,c1 mov cl,4 mov si,0 mov bh,10 l1: mov al,d1si mov bl,al and bl,0fh and al,0f

19、0h shr al,cl mul bh add al,bl mov d2si,al inc si dec ch jnz l1 mov si,0 mov ch,c1 l2: mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov al,d2si mov dl,al and dl,0f0h shr dl,cl add dl,30h cmp dl,39h jna l3 add dl,7 l3: push ax mov ah,2 int 21h pop ax and al,0fh mov dl,al add dl,30h cmp dl,3

20、9h jna l4 add dl,7 l4: mov ah,2 int 21h inc si dec ch jnz l2 mov ah,4ch int 21h code ends end start程序結(jié)果為:0000010011010010六、實(shí)驗(yàn)思考 通過(guò)實(shí)驗(yàn),對(duì)不同進(jìn)制數(shù)及編碼相互轉(zhuǎn)換的程序設(shè)計(jì)方法有一定的了解和掌握。實(shí)驗(yàn)四 運(yùn)算類(lèi)程序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康?. 掌握運(yùn)算類(lèi)指令編程及調(diào)試方法; 2. 掌握運(yùn)算類(lèi)指令對(duì)各狀態(tài)標(biāo)志位的影響及測(cè)試方法。 二、實(shí)驗(yàn)所用設(shè)備1. pc微機(jī)一臺(tái)。 三、實(shí)驗(yàn)內(nèi)容80x86指令系統(tǒng)提供了實(shí)現(xiàn)加、減、乘、除運(yùn)算的基本指令,可對(duì)表4-1所示的數(shù)據(jù)類(lèi)型進(jìn)行算術(shù)運(yùn)算。

21、表4-1 數(shù)據(jù)類(lèi)型算術(shù)運(yùn)算表1二進(jìn)制雙精度加法運(yùn)算 本實(shí)驗(yàn)要求計(jì)算x+y=z,將結(jié)果z輸出到屏幕,其中x=001565a0h,y=0021b79eh。 實(shí)驗(yàn)利用累加器ax,先求低十六位和,并存入低址存儲(chǔ)單元,后求高16位和,再存入高址存儲(chǔ)單元。由于低位和可能向高位有進(jìn)位,因而高位字相加語(yǔ)句需用adc指令,則低位相加有進(jìn)位時(shí),cf=1,高位字相加時(shí),同時(shí)加上cf中的1。在80386以上微機(jī)中可以直接使用32位寄存器和32位加法指令完成本實(shí)驗(yàn)的功能。2十進(jìn)制數(shù)的bcd碼減法運(yùn)算 本實(shí)驗(yàn)要求計(jì)算x-y=z,其中,x、y、z為bcd碼,其中x=0400h,y=0102h。3乘法運(yùn)算 本實(shí)驗(yàn)要求實(shí)現(xiàn)十進(jìn)

22、制數(shù)的乘法,被乘數(shù)和乘數(shù)均以bcd碼形式存放于內(nèi)存中,被乘數(shù)為54320h,乘數(shù)為3h,運(yùn)算結(jié)束后,將乘積在屏幕上顯示。 4用減奇數(shù)開(kāi)平方運(yùn)算 80x86指令系統(tǒng)中有乘除法指令但沒(méi)有開(kāi)平方指令,因此,開(kāi)平方運(yùn)算是通過(guò)程序來(lái)實(shí)現(xiàn)的。用減奇數(shù)法可求得近似平方根,獲得平方根的整數(shù)部分。我們知道,n個(gè)自然數(shù)中的奇數(shù)之和等于n2,即:1+3+5=9=321+3+5+7=16=421+3+5+7+9+11+13+15=64=82若要做s的開(kāi)方運(yùn)算,那麼就可以從s中逐次減去自然數(shù)中的奇數(shù)1,3,5,7,一直進(jìn)行到相減數(shù)為0或不夠減下一個(gè)自然數(shù)的奇數(shù)為止,然后統(tǒng)計(jì)減去自然數(shù)的奇數(shù)個(gè)數(shù),它就是s的近似平方根。

23、本實(shí)驗(yàn)要求利用減奇法計(jì)算0040h的開(kāi)平方值,并將運(yùn)算結(jié)果顯示在屏幕上。 四、實(shí)驗(yàn)步驟1. 運(yùn)行tddebug軟件,選擇edit菜單編寫(xiě)實(shí)驗(yàn)程序; 2. 使用compile菜單中的compile和link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接; 3. 使用rmrun菜單中的run,運(yùn)行程序,觀察運(yùn)行結(jié)果; 4. 使用rmrun菜單中的debug,調(diào)試程序,觀察調(diào)試過(guò)程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內(nèi)容; 5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 五、實(shí)驗(yàn)報(bào)告內(nèi)容及要求根據(jù)實(shí)驗(yàn)要求編寫(xiě)程序并調(diào)試,寫(xiě)出程序調(diào)試過(guò)程及運(yùn)行情況。1 二進(jìn)制雙精度加法運(yùn)算 data segment x dw 65a0

24、h,0015h y dw 0b79eh,0021h z dw 2 dup(?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,2 clc mov si,0 l1: mov ax,xsi adc ax,ysi mov zsi,ax inc si inc si loop l1 mov bx,z2 call list_bx mov bx,z call list_bx mov ah,4ch int 21h list_bx proc mov ch,4 mov cl,4 next: rol

25、 bx,cl mov dl,bl and dl,0fh add dl,30h cmp dl,39h jle print add dl,7 print: mov ah,2 int 21h dec ch jnz next ret list_bx endp code ends end start程序結(jié)果:00371d3e2 十進(jìn)制數(shù)的bcd碼減法運(yùn)算 data segment x dw 0400h y dw 0102h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,x lea di,

26、y mov dl,10d mov bl,si mov al,si+1 mul dl add bl,al mov dl,10d mov cl,di mov al,di+1 mul dl add cl,al sub bl,cl mov al,bl mov bl,10d div bl mov bh,al mov bl,ah mov cx,4 mov ah,02h loop2: rol bx,4 mov dl,bl and dl,0fh add dl,0 cmp dl,9 jb print add dl,a-(9+1) print: int 21h loop loop2 code ends end s

27、tart程序結(jié)果:02083 乘法運(yùn)算 data segment x dd 54320h y db 03h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,x+2 mov cx,3 mov ax,0 loop1: mov dl,10d mov bl,si rol bl,4 and bl,0fh mul dx add ax,bx mov dl,10d mov bl,si and bl,0fh mul dx add ax,bx dec si loop loop1 lea di,y m

28、ov bl,di mul bx mov si,4 mov bx,ax mov cx,dx mov ah,02h loop2: rol cx,4 mov dl,cl and dl,0fh add dl,0 cmp dl,9 jbe print1 add dl,a-(9+1) print1: int 21h dec si jnz loop2 mov si,4 loop3: rol bx,4 mov dl,bl and dl,0fh add dl,0 cmp dl,9 jbe print2 add dl,a-(9+1) print2: int 21h dec si jnz loop3 mov dl,

29、h int 21h code ends end start 程序結(jié)果:00027c90h4用減奇數(shù)開(kāi)平方運(yùn)算 data segment res db 5 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov bx,0040h mov cx,1d mov ax,0d begin: sub bx,cx jb exit add cx,2d add al,1d jmp begin exit: mov bx,10d lea si,res+4 cmp ax,10 jae loop1 mov

30、 dl,al add dl,0 mov ah,02h int 21h jmp nnn loop1: div bx add dl,0 mov byte ptrsi,dl dec si cmp ax,10 jae loop1 add al,0 mov si,al lea si,res mov cx,5 mark: mov dl,si cmp dl,0 jnz loop2 inc si jmp mark loop2: mov dl,si mov ah,02h int 21h inc si loop loop2 nnn: mov ax,400ch int 21h code ends end start

31、程序結(jié)果:8實(shí)驗(yàn)五 分支程序設(shè)計(jì)實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 掌握分支程序的設(shè)計(jì)方法。二、實(shí)驗(yàn)所用設(shè)備1. pc微機(jī)一臺(tái)。 三、實(shí)驗(yàn)內(nèi)容程序有順序、循環(huán)、分支和子程序四種結(jié)構(gòu)形式,分支結(jié)構(gòu)的示意圖如圖5-1所示。本實(shí)驗(yàn)要求通過(guò)求無(wú)符號(hào)字節(jié)序列中的最大值和最小值來(lái)反映分支程序的結(jié)構(gòu)形式。 圖5-1 分支結(jié)構(gòu)示意圖 實(shí)驗(yàn)可以使用bh,bl作為暫存現(xiàn)行的最大值和最小值,且在程序的初始,將bh和bl初始化為首字節(jié)的內(nèi)容,然后進(jìn)入循環(huán)操作。在循環(huán)操作中,依次從字節(jié)序列中逐個(gè)取出一個(gè)字節(jié)的內(nèi)容與bh,bl進(jìn)行比較,若取出的字節(jié)內(nèi)容比bh的內(nèi)容大或比bl中的內(nèi)容小,則修改之。當(dāng)循環(huán)結(jié)束操作時(shí),將bh,bl分別送屏幕

32、顯示。參考實(shí)驗(yàn)流程如圖5-2所示。四、實(shí)驗(yàn)步驟1. 運(yùn)行tddebug軟件,選擇edit菜單編寫(xiě)實(shí)驗(yàn)程序,提供8字節(jié)的數(shù)據(jù):0d9h,07h,8bh,0c5h,0ebh,04h,9dh,0f9h; 2. 使用compile菜單中的compile和link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接; 3. 使用rmrun菜單中的run,運(yùn)行程序,觀察運(yùn)行結(jié)果; 4. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。 五、實(shí)驗(yàn)報(bào)告內(nèi)容及要求根據(jù)實(shí)驗(yàn)要求編寫(xiě)程序并調(diào)試,寫(xiě)出程序調(diào)試過(guò)程及運(yùn)行情況。data segment buffer db 0d9h,07h,8bh,0c5h,0ebh,04h,9dh,0f9h data endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,buffer mov bl,si mov bh,si mov cx,8 loop1: mov al,si cmp bl,al jb next1 mov bl,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論