




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
微機原理實驗報告姓名:學號:班級:實驗日期:年月日批閱老師:實驗名稱:拆字、拼字程序一、實驗預習內容1、8086/8088有14個16位寄存器,按其用途可分為8個寄存器、2個寄存器和4個寄存器。2、通用寄存器分別是。代碼段寄存器是,數據段寄存器是,堆棧段寄存器是。3、在數據寄存器中,被稱為累加器的用于算術運算外,還用于輸入/輸出等操作。被稱為基址寄存器的它可作為存儲器指針來使用。被稱為計數寄存器的在循環和字符串操作時,要用它來控制循環次數;在位操作中,當移多位時,要用來指明移位的位數。而數據寄存器在進行乘、除運算時,它可作為默認的操作數參與運算,也可用于存放I/O的端口地址。4、堆棧指針寄存器與SS配合使用,可指向目前的堆棧位置;基址指針寄存器可用作SS的一個相對基址位置;源變址寄存器可用來存放相對于DS段之源變址指針;目的變址寄存器可用來存放相對于ES段之目的變址指針。指令指針寄存器用來存放代碼段中的偏移地址。5、在8088指令的尋址方式中,下列各指令中屬于立即尋址的是,屬于寄存器尋址的是,屬于直接尋址的是,屬于寄存器間接尋址的是,屬于基址尋址的是,屬于基址加變址尋址的是。A、MOVAX,2000HB、MOVAX,[2000H]C、MOVAX,CXD、MOVAX,[DI]E、MOVAX,[BX][SI]F、MOVAX,[BP]6、在DEBUG下,反匯編命令是,匯編命令是,顯示顯示內存單元內容的命令是,修改內存單元內容的命令,檢查和修改寄存器內容的命令是,逐步追蹤執行命令是,連續執行程序命令是,退出命令是。二、實驗內容與過程1、設DS為當前段地址,BX=0300H,SI=0002H;請用DEBUG的命令在存儲器偏移地址300H~304H單元中連續按順序裝入0AH,0BH,0CH,0DH,0EH。在DEBUG狀態下送入下面程序,并用單步執行的方法,分析每條指令源地址的形成過程,當數據傳送完畢時,AX中的內容是什么,并指出這條指令是什么尋址方式。程序清單如下:MOVAX,0000HMOVBX,0300HMOVSI,0002HMOVDI,0302HMOVAX,BXAX的內容:;MOVAX,0302HAX的內容:;MOVAX,[DI]AX的內容:;MOVAX,[BX]AX的內容:;MOVAX,0001[BX]AX的內容:;MOVAX,[BX][SI]AX的內容:;MOVAX,0002[DI]AX的內容:;HLT(1)在匯編軟件環境下,首先輸入程序,并在建立的文件夾下進行保存;然后進行編譯生成,發現問題進行編輯修改再進行編譯;再進行鏈接生成。(2)用E命令加帶數據段物理地址,將偏移地址300H~304H單元中連續按順序裝入。(4)用命令單步跟蹤執行程序,查看寄存器的內容,根據每條指令執行情況,記錄其所存放的數據。2、把4000H單元的內容拆開,高位送4001H單元,低位送4002H單元。拆字程序清單如下,按要求在填空處完善注釋。CODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVBX,4000H;把地址單元4000H給BX寄存器MOV[BX],5BH;MOVAL,[BX];把4000H單元的內容給ALMOVAH,AL;再把4000H單元的內容給AHMOVCL,04;SHRAH,CL;ADDBX,01(或INCBX);地址單元加1MOV[BX],AH;ANDAL,0FH;屏蔽掉AL中的高四位ADDBX,01(或INCBX);地址單元加1MOV[BX],AL;HLTCODESENDS;程序結束ENDSTART查看4000H起始的三個單元內容的命令為,從4000H起三個地址單元的保存的數據依次為:。3、把2000H、2001H的單元的低4位拼成一個字,送入2002H單元(第一個字的低4位和第二個字的低4位拼成一個字)。完善程序,并用DEBUG進行調試。CODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVBX,2000H;把地址單元2000H給BX寄存器;把2000H單元所要拼的字置為F6H;把2001H單元所要拼的字置為28HMOVAL,[BX];把2000H單元的內容給ALMOVAH,[BX+1];把2001H單元的內容給AH;屏蔽掉AL中的高四位MOVCL,04H;設置移位次數為4;AH的內容左移4位;進行拼字ADDBX,02H;地址單元到2002H;將拼好的字保存在2002H單元HLTCODESENDS;程序結束ENDSTART使用命令查看存放在2000H單元起三個地址單元中的數據分別是:。三、實驗總結1、匯編程序的調試過程有關問題:①輸入源程序代碼并進行存盤;②對文件進行,若發現錯誤可根據錯誤信息進行修改,直到無錯為止;③在DEBUG下,用相關命令進行查看、修改或執行匯編程序,常用的相關命令分別是;④在DEBUG下,程序運行的結果一般存放在相關中,或者存放在數據段偏移地址單元中。⑤在顯示結果中所看到的分別表示溢出、方向、中斷、符號、零、輔助進位、奇偶、進位標志狀態是復位狀態。2、其它相關問題:①匯編程序保存的文件名(及文件夾)必須符合命名要求,一般由26個英文字母和10個數字組成,文件名長度不準超過個字符。②輸入程序代碼指令其英文符號的或者輸入都一樣,而指令間該有的不能省略,其指令和標點符號必須是在狀態下輸入方可有效。③程序代碼和程序數據一般存放在不同的下,若存在同一段地址下,其偏移地址可不同,且偏移地址間要有一定的相隔空間。偏移地址從開始,到最大結束。3、所有移位指令的目標操作數,只允許是,指令中的計數值可以是常數1,即移位1次,如果移位多于1次,則必須將移位數N事先裝入寄存器中,本指令最多可移位255位。一般來說,當目標操作數為無符號數時采用指令;若目標操作數為有符號數時,則采用指令。4、在邏輯運算指令中,僅指令不影響標志位;其它指令執行后,除AF狀態不定外,總是使OF=CF=0,ZF、SF、PF則根據運算結果被置位或復位。姓名:學號:班級:實驗日期:年月日批閱老師:實驗名稱:數據區移動與分支程序一、實驗預習內容1、8086/8088計算機指令一般由和操作數組成(無操作數指令除外)。根據操作數存放位置的不同,可將操作數分為三種類型。2、存儲器操作數存放在內存的數據區,數據區的物理地址由共同構成。大部分操作數的由數據段寄存器的內容來確定。3、數據傳送指令是計算機中最基本、最重要、最常用的一種指令,主要用來實現的字節或字的傳送。在數據傳送指令中,需要注意的是必須保持一致。4、傳送指令MOV在使用時應注意:和不能作為目的操作數;立即數傳送到時一定要與一致;源操作數和目的操作數不能同時為。5、加法指令ADD和帶進位加法指令ADC執行時會對標志位受影響。6、簡單分支程序根據條件是否滿足將程序分為分支,按不同條件做出相應的處理。這種程序往往是用的方法,在中設置相應的標志位,然后再根據適當的實現不同情況的分支轉移。7、條件轉移指令可分為三類,在下列指令中適用于無符號數的條件轉移指令助記符中是;適用于有符號數的條件轉移指令助記符是;適用于標志位的條件轉移指令助記符是。JA、JB、JC、JE、JG、JL、JZ、JAE、JGE、JLE、JNE、JNBE8、在條件轉移指令中,指令助詞符JAE和、JG和、JLE和、JZ和執行的結果是一樣的。二、實驗內容與過程1、把4100H源RAM區首址起的16字節數據傳送到4200H目標RAM區。讀懂程序,完善程序注釋,用DEBUG調試并查看結果。CODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVCX,010H;置搬移數據循環次數MOVSI,4100H;MOVDI,4200H;MOVBX,SI;將源數據塊首址給BXMOVDL,01HNUM:MOV[BX],DL;將16個數據存放在源數據塊區INCBXINCDLLOOPNUMMOVCX,010H;置搬移數據循環次數CMPSI,DI;SI與DI相比較JAL2;ADDSI,CX;SI與CX相加ADDDI,CX;DI與CX相加L1:DECSI;DECDI;MOVAL,[SI];MOV[DI],ALLOOPL1;循環16次結束JMPHEND;跳轉到結束L2:MOVAL,[SI];把源數據塊存儲單元的數據傳送到目的數據塊MOV[DI],ALINCSI;INCDI;LOOPL2;數據搬移16次后結束HEND:HLTCODESENDS;程序結束ENDSTART連續執行該程序的命令是,查看存放在4100H地址單元的數據命令是,查看存放在4200H地址單元的數據命令是,檢查4100H~4110H、4200H~4210H中存儲的數據為。2、假設有一組數據為25,-4,0,3,100,-51,17,62。請編程判斷:每個是數大于0,等于0,還是小于0,并輸出Y的值。即:1當x>0y=0當x=0-1當x<0根據要求在空白處完成編程或加注釋:DATASSEGMENTXDB25,-4,0,3,100,-51,17,62;建立數據表YDB;為存儲結果建立緩沖區DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AX;置數據段存放地址XORAX,AX;對AX清零;設定循環控制數LEASI,X;置數據表偏移量首址;置存儲數據偏移量首址BJ:;將第一個數給ALCMPAL,0;AL內容與0進行比較;比較結果>=0則轉移到DY處XY0:MOVBL,-1;小于0將-1給BLMOV[DI],BL;將-1存儲到地址單元JMPXH;跳轉到XH處DY:;若等于0轉移到XD處MOVBL,1MOV[DI],BL;將1給BL且存儲到地址單元JMPXH;跳轉到XH處XD:MOVBL,0;給BL賦值為0MOV[DI],BL;將0存儲到地址單元XH:;數據表偏移地址增1;存放結果數據偏移地址增1LOOPBJ;判斷CX是否為0,是則結束,否則進行循環HLTCODESENDS;程序結束ENDSTART連續執行程序的命令是,查看存放在內存中的數據命令是存放在數據段地址單元的結果是三、實驗總結1、段定義偽指令用于將源程序劃分為若干個段。這些邏輯段按照用途可分為和附加段。需要說明的是,并不是所有程序都必須包含這四個邏輯段,可根據需要進行配置。每個指令可定義一個邏輯段。段寄存器說明偽指令向匯編程序指示當前各段所用的寄存器,并設定段寄存器與段的對應關系。2、存儲器由許多存儲單元組成,每一個存儲單元可以存放一個8位二進制數,即,每一個存儲單元都指定了一個惟一的編號,稱之為。存放程序代碼的起始地址由寄存器來指定,存放程序所用數據的起始地址由寄存器來給定。程序在執行過程中的偏移地址是由寄存器來給定。3、DB偽操指令用來定義字節型變量,其中的每個操作數都占有存儲單元,每個操作數的值不超過。DW偽操指令用來定義字型變量,其中的每個操作數都占有,字的低位字節存放在第一個字節地址單元中,字的高位字節存放在第二個字節地址單元中。DD偽操指令用來定義雙字型變量,其中的每個操作數都占有,雙字的最低位字節在第一個字節地址單元中,次低位字節在第二個字節地址單元中,次高位字節在第三個字節地址單元中,高位字節在第四個字節地址單元中。4、以CMPA,B示例說明比較指令功能用法如下:①判斷兩個數操作數是否相等,可根據標志位來判斷,若說明A=B;若說明A≠B。②判斷兩個無符號操作數的大小,可根據標志位來判斷,若說明A<B;若說明A≥B。姓名:學號:班級:實驗日期:年月日批閱老師:實驗名稱:循環程序設計一、實驗預習內容1、在設計循環程序中,一般結構由循環部分、部分、部分和部分。在循環開始前首先應建立和其它循環參數的起始值等。控制循環是循環程序設計中最重要的一個環節,這部分用于控制重復執行的次數,包括修改和,為下一次循環做好準備,以及修改循環計數器,判斷循環結束條件是否滿足,若條件滿足則退出循環,否則繼續循環。最常見控制循環的兩種方式是和。值得指出的是,循環程序的前后兩部分只能執行一次,而循環主體部分不能出現轉向建立循環參數起始值部分,否則會造成程序,或者得不到預期結果。2、設計多重循環程序時,可以從循環到循環一層一層的進行。需要注意的是,多重循環可以嵌套,但不能。此外,轉移指令可以從循環結構內向外轉出,但不能從循環直接跳進循環。3、常用計數循環控制指令LOOP目標號,首先得把循環計數值賦給寄存器,當執行到LOOP指令時,先做,再進行判別,當轉移到目標號繼續循環,直到退出循環。二、實驗內容與過程以GRADE為首地址的10個字的數組中保存有學生成績。建立一個10個字的RNAK數組,并根據GRADE中的學生成績將學生名次填入RANK數組中(提示:一個學生的名次等于成績高于該學生的人數之和再加1)。AX——存放當前被測學生的成績BX——存放當前被測學生的相對地址指針CX——內循環計數值DX——存放當前被測學生的名次計數值SI——內循環測試時的地址指針DI——外循環計數值按要求編程,計算學生排名,并輸出排名結果:DATASSEGMENTGRADEDB95,84,72,58,76,90,100,68,80,88;建立學生成績表RANKDB10DUP(?);建立學生成績名次的緩沖區KGDB‘’,‘$’;顯示兩個空格DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;分配數據段地址XORAX,AX;對AX清零MOVDI,0;對DI置0;置學生成績表首址WXH:MOVAL,[BX];將第一個學生成績給AX;將學生名次先置為1;設置循內環計數值MOVSI,OFFSETGRADE;取比較學生成績的第一個數NXH:CMPAL,[SI];兩個學生成績相比較JAENEXT;若高于等于則跳轉到NEXT處;否則學生名次增1NEXT:INCSI;取下一個相比較的學生成績;判斷CX是否為0;將學生名次存入地址單元INCBX;取下一個學生的成績INCDI;外循環控制次數增1;外循環次數是否到10JBWXH;不到10進行循環,到10后結束;設置顯示名次緩沖區首址MOVCX,10;設置顯示控制循環次數為10XS:;將顯示的名次給ALCMPAL,0AH;名次與0AH(10)比較JWEDY;高于等于轉移到DYADDAL,30H;轉換成ASIIC碼進行輸出顯示;顯示名次JMPKGF;跳轉到顯示空格處DY:;大于等于A的進行轉換,并顯示MOVDL,ALMOVAH,02INT21HKGF:LEADX,KG;顯示空格字符串INT21HLOOPXSHLTCODESENDS;程序結束ENDSTART在本程序數據段中變量GRADE的偏移首址是,RANK的偏移首址是,KG的偏移首址是。程序運行后RANK單元的內容為:。三、實驗總結1、本實驗程序中循環初始化部分的語句有、、。循環結束部分的語句有。內循環控制方式是,而外循環控制方式是。2、十六進制數0~F的ASCII碼分別是30H、31H、32H、33H、34H、35H、36H、37H、38H、39H、。數0~9所對應的ASCII碼與其數值之差(30-0、31-1、32-2、33-3、……39-9)均是,而數A~F對應的ASCII碼與其數值之差(41-A、42-B、43-C、44-D、45-E、46-F)均是。3、標號通常由字母數字組成,但第一個字符必須是字母,最多允許使用31個字符。值得注意的是,編程員選用標號時,不能使用系統中已經定義過的符號名,如助記符、、寄存器名等,否則將產生錯誤。本實驗程序中所使用的標號有等。4、談一談本次實驗的心得體會(至少談五點)。實驗課程:微機原理及接口技術姓名:學號:班級:實驗日期:年月日批閱老師:實驗名稱:I/O擴展(244/273)實驗一、實驗預習內容1、本次實驗是利用74LS244和74LS273的擴展電路來實現開關狀態的輸入和輸出,用做為輸入信號,并用來顯示輸出。74LS244為3態8位,一般用作總線驅動器。74LS273是8位數據/地址,它是一種帶清除功能的8D觸發器。2、74LS138是3/8線譯碼器,即用3個輸入信號進行譯碼,得到狀態。為譯碼信號輸入端,為譯碼輸出端,低電平有效。3、74LS273的D0~D7為8位數據輸入端,接到數據總線上;Q0~Q7為8位數據輸出端,接到LED顯示上,當開關撥到時LED發亮。CLK為觸發時鐘輸入端,由或門74LS32的兩個輸入端來選通。當數據總線上的值撤銷后,由于74LS273能鎖存信號,所以74LS273的輸出端,直到有新的數據被鎖存。二、實驗內容與過程實驗內容1、用244/273做I/O擴展實驗。調試上機程序,并完善程序語句注釋。CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG3380H;244/273擴展程序存放目標地址;PIO1EQU0FFE0H;PIO2EQU0FFE4H;P1:MOVDX,PIO1;INAL,DX;等待輸入信號MOVDX,PIO2;OUTDX,AL;輸出信號JMPP1;循環等待CODEENDSENDP1(1)74LS244的輸入端PI0~PI7分別連接到邏輯電平開關單元的開關上,74LS273的輸出端PO0~PO7分別連接到發光二極管顯示單元的上。(2)按電路圖連接譯碼器74LS138的輸入端A、B、C,其中A接到地址線上的,B連接到地址線上的,C連接到地址線上。138控制輸入端G接到地址線上對應的端。(3)74LS32為4-2輸入或門電路,輸入端1接到138的上,2接到地址線區的IORD上,輸出端3接到244芯片的G端口上;32門的輸入端4接到138的上,5接到地址線區的IOWR上,輸出端6接到273芯片的CLK端口上。(4)將244、273芯片旁的數據插座用。(5)進入實驗軟件環境,輸入程序源文件,并進行檢查。(6)接通實驗箱電源開關,進行通電。(7)運行程序。(8)撥動K1~K8,。實驗內容2:編制程序,利用273控制各種顏色LED的亮與滅。拆掉244芯片的接線,保留273及138譯碼器的接線。參照實驗內容1編程實現L1~L8八路燈的同時亮與滅;編程實現L1~L8中所有黃燈、綠燈、紅燈,按照黃燈亮(其它燈來)、綠燈亮(其它燈滅)、紅燈亮(其它燈滅)的順序依次循環。L1~L8路燈同時亮、同時滅的程序如下:CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG3380H;程序存放目標地址;PIO2EQU0FFE4H;273芯片字位控制字P1:;給AL賦值,使所有燈亮;選通273芯片接口;輸出信號;調延時子程序;給AL賦值,使所有燈滅;選通273芯片接口;輸出信號;調延時子程序JMPP1;循環DELAY:;延時子程序YS:NOPLOOPYSRETCODEENDSENDP1L1~L8中所有黃燈、綠燈、紅燈,按照黃燈亮(其它燈滅)、綠燈亮(其它燈滅)、紅燈亮(其它燈滅)的順序依次循環程序如下:CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG3380H;程序存放目標地址;PIO2EQU0FFE4H;273芯片字位控制字P1:;給AL賦值,使所有黃燈亮;選通273芯片接口;輸出信號;調延時子程序;給AL賦值,使所有綠燈亮;選通273芯片接口;輸出信號;調延時子程序;給AL賦值,使所有紅燈亮;選通273芯片接口;輸出信號;調延時子程序JMPP1;循環DELAY:;延時子程序YS:NOPLOOPYSRETCODEENDSENDP1三、實驗總結1、在Windows環境下,點擊“Intel8088微機實驗系統”進入實驗系統前有一個選擇,即選擇通訊端口:一般情況下,串口選擇,波特率選擇,點擊“確認”就可進入實驗系統環境。2”圖標,進行,在出現成功的對話框后點擊“OK”框,則進入源文件調試狀態。如果編譯發現問題則在編輯畫面下邊顯示出錯信息,可根據對源文件錯誤行修改其錯誤。3、在工具條中點擊所需運行的方式“”有三種:。4、在實驗箱上進行接線、拆線一定要在的情況下進行。實驗課程:微機原理及接口技術姓名:學號:班級:實驗日期:年月日批閱老師:實驗名稱:8255A的輸入/輸出、方波實驗一、實驗預習內容1、8255A是一種可編程并行接口芯片,通過它可直接將CPU數據總路線與外部設備連接起來。8255A有3個8位數據端口,分別為端口。它有三種工作方式,即。2、8255A芯片有40個管腳,有三組端口數據線分別是和。而引腳CS為信號,低電平有效;當其信號有效時,8255A才能與CPU進行數據傳送。引腳RD為讀信號,低電平有效;當其有效時,CPU從8255A中讀取數據。引腳WR為寫信號,低電平有效;當其有效時,CPU向8255A中寫入。RESET為復位信號,高電平有效;8255A復位后,所有內部寄存器包括控制字寄存器都被清零,3個數據端口被自動設置為端口。A1、A0為端口選擇信號,用來對8255A內部3個和一個控制端口進行尋址;規定A1、A0為時分別選中端口A、端口B和端口C,為時選中的是控制端口。3、8255A的控制字決定8255A的工作方式。而控制字是由CPU通過輸出指令寫到8255A的控制端口的。其中D7=1是方式選擇控制字的,位用來選取A組的工作方式;D4、D3位用來選取和的輸入/輸出性質;位用來選取B工作方式;位用來選取端口B和端口C低4位的輸入/輸出性質。我們通常所說的對8255A進行初始化,就是通過D7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 術后常見并發癥護理
- 江漢大學《英語修辭與寫作》2023-2024學年第一學期期末試卷
- 鄭州電力高等專科學校《寫作與溝通》2023-2024學年第二學期期末試卷
- 長沙市重點中學2025屆高考數學試題金榜沖刺卷(一)含解析
- 四川省廣安市鄰水縣2025屆數學四下期末質量檢測試題含解析
- 神木職業技術學院《Pthon數據分析與挖掘基礎》2023-2024學年第二學期期末試卷
- 沈陽市大東區重點達標名校2024-2025學年中考語文試題押題卷含解析
- 四川外國語大學成都學院《智能制造創新創業實訓智造創新工場認知與數據管理》2023-2024學年第二學期期末試卷
- 皖北衛生職業學院《建筑與環境設計方法》2023-2024學年第二學期期末試卷
- 遼寧輕工職業學院《新能源汽車》2023-2024學年第二學期期末試卷
- 未來人工智能在麻醉學中的應用前景分析培訓課件
- 數據分析教學課件
- 醫院培訓課件:《枸櫞酸鈉抗凝劑在CRRT中的應用》
- 戊二酸血癥 I 型學習課件
- 東湖老陳醋營銷計劃書
- 腦出血急救和護理課件
- 發展全過程人民民主發展全過程人民民主
- 2024年江蘇省泰州市國有企業招聘筆試參考題庫含答案解析
- 煙花爆竹零售經營安全培訓
- (2023年度)中央廚房、集體供餐配送單位食品安全全項目自查記錄表
- 土的滲透性完整版本
評論
0/150
提交評論