8086匯編語言程序設計微機實驗報告_第1頁
8086匯編語言程序設計微機實驗報告_第2頁
8086匯編語言程序設計微機實驗報告_第3頁
8086匯編語言程序設計微機實驗報告_第4頁
8086匯編語言程序設計微機實驗報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

微 機 實 驗 報 告微機試驗報告第一局部:8086匯編語言程序設計一、試驗目的80868086匯編語言程序的編寫格式,DEBUG調(diào)試工具。二、試驗題目DOS〔要求字符串從鍵盤上輸入〕1、流程圖-1---2-微 機 實 驗 報 告2、試驗程序及注釋DATASEGMENTBUFSIZEDB20;數(shù)據(jù)段ACTCHARDB?;定義字符串CHARTEXTDB20DUP(?);給輸入字符安排內(nèi)存DB”$”CNTDB0;給計數(shù)器安排內(nèi)存STRING1 DB”PLEASEINPUTTHESTRING:”,”$”STRING2 DB0AH,0DH,”INPUTTHEWORDYOUWANTTOCHECK:”,”$”STRING3 DB0AH,0DH,”THENUMBEROFTHEWORDIS:”,”$”DATAENDS ;數(shù)據(jù)段完畢COSEGSEGMENT ;代碼段START:MOVAX,DATAMOVDS,AXMOVDX,OFFSETSTRING1;顯示提示語:請輸入字符串MOVAH,09HSTRING1INT21HMOVDX,OFFSETBUFSIZEBUFSIZEMOVAH,0AH;并送顯INT21HMOVDX,OFFSETSTRING2;顯示提示語:想查詢的字符是MOVAH,09HSTRING2INT21HMOVAH,01HAL中并送顯INT21HMOVBX,OFFSETCHARTEXTBXMOVCL,ACTCHARCX=字符串長度XORCH,CHLP1:CMPAL,[BX]AL比較JZ LP2LP2INCBX;指針指向字符串下一個字符DECCX;循環(huán)次數(shù)減一JNZLP1LP1JMPFINIFINILP2:INCCNT;計數(shù)器增一INCBX;指針指向字符串下一個字符DECCX;循環(huán)次數(shù)減一JNZLP1LP1FINI:MOVDX,OFFSETSTRING3;顯示提示語:所查詢的字符個數(shù):MOVAH,09HINT21HMOVAL,CNTALAAMBCD碼微 機 實 驗 報 告ADDAH,30H BCDASCⅡ碼MOVDL,AH ;高位送顯MOVAH,02HINT21HMOVAL,CNT ALAAMADDAL,30H BCDASCⅡ碼MOVDL,AL ;低位送顯MOVAH,02HINT21HMOVAH,4CH ;完畢INT21HCOSEGENDS ;代碼段完畢ENDSTART ;程序完畢3、運行結(jié)果PLEASEINPUTTHESTRING(先輸入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(輸入待查找字符A↙THENUMBEROFTHEWORDIS(數(shù)量為):3↙PLEASEINPUTTHESTRING(先輸入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(輸入待查找字符):9↙THENUMBEROFTHEWORDIS(數(shù)量為):0↙PLEASEINPUTTHESTRING(先輸入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(輸入待查找字符S↙THENUMBEROFTHEWORDIS(數(shù)量為):1↙4、程序改進1循環(huán)次數(shù)的改進原來的程序:MOVCX,1919次。改進后的程序:MOVCL,ACTCHARXORCH,CHCX=字符串長度,這樣可以提高運行速度2LP1: CMPAL,[BX] ;將字符與字符串逐個比較JZ LP2 LP2INCBX ;指針指向字符串下一個字符DECCX ;循環(huán)次數(shù)減一CMPCX,0000H ;假設還有未比較的字符微 機 實 驗 報 告JNZLP1 LP1JMPFINI ;假設全部比較完畢,跳轉(zhuǎn)FINILP2: INCCNT ;計數(shù)器增一INCBX ;指針指向字符串下一個字符DECCX ;循環(huán)次數(shù)減一CMPCX,0000H ;假設還有未比較的字符JNZLP1 LP1改進緣由:DEC為自減一,假設減為0,它會自動影響其標志位ZF,所以不用把CX00HCX是否為零?!睠MPCX,0000〕LP1:CMPAL,[BX]AL比較JZ LP2LP2INCBX;指針指向字符串下一個字符DECCX;循環(huán)次數(shù)減一JNZLP1LP1JMPFINIFINILP2:INCCNT;計數(shù)器增一INCBX;指針指向字符串下一個字符DECCX;循環(huán)次數(shù)減一JNZLP1LP1〔二〕BCD16進制數(shù)顯示出來。1流程圖初始化初始化鍵入字符推斷是否在09之間轉(zhuǎn)化為十進制數(shù)將整數(shù)局部和余數(shù)局部轉(zhuǎn)化為ASIIC碼,并送顯返回DOS2、試驗程序及注釋CODESEGMENTASSUMECS:CODESTART:CALLDECIBIN ;調(diào)用十進制轉(zhuǎn)二進制子程序CALLCRLF ;調(diào)用添加回、換行符子程序CALLBINIHER ;調(diào)用二進制轉(zhuǎn)十六進制并顯示子程序CALLCRLF ;調(diào)用添加回、換行符子程序微 機 實 驗 報 告MOVAH,4CHINT21HDECIBINPROCMOVBX,0;BX清零MOVCL,2BCD碼NEW: MOVAH,1 ;DOS調(diào)用,鍵入字符并回顯INT21HSUBAL,30H 09之間JLNEW1 NEW1CMPAL,9JGNEW1CBWXCHGAX,BXMOVCX,10MULCXXCHGAX,BXADDBX,AXPOPCXDECCLJNCNEWRETNEW1: PUSHCXMOVAH,3INT10HMOVAH,2DECDLINT10HPOPCXJMPNEWDECIBIN ENDPBINIHER PROCMOVCH,4RORATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HJLNEXTADDAL,7HNEXT: MOVDL,ALMOVAH,2INT21HDECCH

;左>右則轉(zhuǎn)移;將一個字節(jié)轉(zhuǎn)化為字;交換兩個存放器之間的內(nèi)容10CXAXAX;返回到原來調(diào)用指令的下一條指令;NEW10-9數(shù)字,光標才會移動;記錄轉(zhuǎn)換后的十六進制位數(shù);利用CL當計數(shù)器,記錄存放器數(shù)位移動次數(shù)16BXBLal;高四位清零;AL3AH轉(zhuǎn)移ASCIIDL;DOS調(diào)用,顯示字符;CH1微 機 實 驗 報 告JNZRORATERETBINIHERENDPCRLFPROC ;實現(xiàn)換行功能MOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HRETCRLFENDPCODEENDSENDSTART3、運行結(jié)果輸入數(shù)字 12↙此時屏幕顯示 000C4、程序改進序,例如字母等等。改進后的程序:在推斷是否是0-9后,參與跳轉(zhuǎn)程序方法一:SUBAL,30H ;比較鍵入字符是否在0到9之間JLEXIT ;小于零,即不在范圍內(nèi),就跳到EXITCMPAL,9DJGEXITEXIT: PROCNEAR ;返回DOSMOVAH,4CHINT21HEXIT1ENDP方法二:SUBAL,30H ;比較鍵入字符是否在0到9之間JLNEW1 NEW1CMPAL,9JGNEW1 ;左>右則轉(zhuǎn)移NEW1: PUSHCX MOVAH,3 數(shù)字,光標才會移動INT10HMOVAH,2DECDLINT10HPOPCXJMPNEW一、試驗目的

微 機 實 驗 報 告其次局部:微機接口試驗原理。二、試驗題目〔一〕串行接口試驗題目1、試驗內(nèi)容1ESC鍵〔27〕推DOS〔8250設成自收自發(fā)方式〕2、試驗目的了解串行通訊的根本原理,把握串行接口芯片8250的工作原理和編程方法。3、流程圖-7-微 機 實 驗 報 告試驗連線連線見下圖,8250芯片插在40芯的通用插座上。CS 接2B8H-2BFH。試驗程序及注釋NAME8250DATASEGMENT ;定義數(shù)據(jù)段DIVIDDW0CH 9600波特率的除數(shù)DATAENDS ;數(shù)據(jù)段完畢STACK1SEGMENTPARASTACK ;定義棧DB100DUP(?) STACK1ENDSCODESEGMENT ;代碼段ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK1SUB1PROCFAR ;標準程序頭START:PUSHDS ;8250初始化MOVAX,0 ;8位數(shù)據(jù)位,一個停頓位PUSHAXMOVAL,80H MOVDX,2BBHOUTDX,ALMOVAX,DIVID ;取除數(shù)MOVDX,2B8HOUTDX,AL ;寫入除數(shù)低字節(jié)MOVAL,AHMOVDX,2B9HOUTDX,AL ;寫入除數(shù)高字節(jié)MOVAL,0AHMOVDX,2BBH ;寫入線路把握存放器OUTDX,ALMOVAL,13HMOVDX,2BCH MODEM把握存放器OUTDX,ALMOVAL,0MOVDX,2B9H ;寫入中斷允許存放器-8-微 機 實 驗 報 告OUTDX,ALWAIT_FOR:MOVDX,2BDH ;讀線路允許存放器INAL,DXTESTAL,1EH ;出錯否JNZERRORTESTAL,1 ;接收數(shù)據(jù)就緒否JNZRECEIVE ;轉(zhuǎn)接收TESTAL,20H ;發(fā)送器空否JZWAIT_FOR ;返回等待MOVAH,1INT16HJZWAIT_FORMOVAH,0INT16HMOVDX,2B8HOUTDX,ALJMPWAIT_FORRECEIVE:MOVDX,2B8HINAL,DXANDAL,7FHCMPAL,1BHJNZCHARMOVAX,4C00HINT21HCHAR: ADDAL,1PUSHAXMOVAH,14INT10HPOPAXCMPAL,0DHJNZWAIT_FORMOVAL,0AHMOVAH,14INT10HJMPWAIT_FORERROR: MOVDX,2B8HINAL,DXMOVAL,”?”MOVAH,1INT10HJMPWAIT_FORSUB1ENDPCODEENDSENDSTART

;讀鍵盤;無按鍵返回等待;讀按鍵;發(fā)送;返回等待;讀承受數(shù)據(jù)7位數(shù)據(jù)ESC否DOS;加一送顯;備查;顯示承受字符;是否回車符;不是返回等待;是回車則加換行;出錯則去除;顯示’?’-9-微 機 實 驗 報 告運行結(jié)果輸入5 屏幕顯示6輸入A 屏幕顯示B按下Esc鍵 返回將來匯編界面遇到問題及解決方法16,由于有:發(fā)送波特率=2MHZ÷除數(shù)存放器值÷1613〔M9600÷16=113〔0DH0?!捕巢⑿薪涌谠囼烆}目題目一:編程實現(xiàn)從鍵盤上輸入一個數(shù)字0-DOS。1、試驗目的了解并行通訊的根本原理,把握并行接口芯片8255的工作原理和編程方法。2、七段數(shù)碼管的字形代碼表顯示字形gefdcba段碼001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh3、試驗連線S1接+5V,S0、dp接地,CS288H~28FH。-10-微 機 實 驗 報 告4、流程圖5、試驗程序及注釋DATASEGMENT ;數(shù)據(jù)段ENTERDB0AH,0DH,”$”MSG0 DB0AH,0DH,”PLEASEINPUTANUMBER(0--9):”,”$”DATAENDSSTACKSEGMENTPARASTACK ;棧區(qū)設置S1 DB40DUP(0) ;開拓一塊棧區(qū)STACKENDSCODESEGMENT ;代碼段ASSUMEDS:DATA,CS:CODESTART:MOVAX,DATA ;標準程序頭MOVDS,AXMOVDX,028BHMOVAL,80HOUTDX,ALINPUT:MOVDX,OFFSETMSG0 ;顯示提示語:請輸入一個數(shù)字MOVAH,09H ;從鍵盤輸入數(shù)字-11---12-微 機 實 驗 報 告INT21HMOVAH,01H ;將數(shù)字送顯INT21HCMPAL,30H 30H〔0〕作比較JCFINISH AL0〔ASCII48〕FINISHCMPAL,39H 39H〔9〕作比較JAFINISH 57〕FINISHCMPAL,30HJZZEROCMPAL,31HJZONECMPAL,32HJZTWOCMPAL,33HJZTHREECMPAL,34HJZFOURCMPAL,35HJZFIVECMPAL,36HJZSIXCMPAL,37HJZSEVENCMPAL,38HJZEIGHTJMPNINEZERO:MOVDX,0288HMOVAL,3FHOUTDX,ALJMPINPUTONE: MOVDX,0288HMOVAL,06HOUTDX,ALJMPINPUTTWO: MOVDX,0288HMOVAL,5BHOUTDX,ALJMPINPUTTHREE:MOVDX,0288HMOVAL,4FHOUTDX,ALJMPINPUT

AL0作比較ZEROAL1作比較ONEAL2作比較TWOAL3作比較THREEAL4作比較FOURAL5作比較FIVEAL6作比較SIXAL7作比較SEVENAL8作比較EIGHTNINE;存入輸出口地址0的字型代碼0,七段數(shù)碼管顯示INPUT;存入輸出口地址1的字型代碼1,七段數(shù)碼管顯示INPUT;存入輸出口地址2的字型代碼2,七段數(shù)碼管顯示INPUT;存入輸出口地址3的字型代碼3,七段數(shù)碼管顯示INPUT微 機 實 驗 報 告FOUR:MOVDX,0288H;存入輸出口地址MOVAL,66H4的字型代碼OUTDX,AL4,七段數(shù)碼管顯示JMPINPUTINPUTFIVE:MOVDX,0288H;存入輸出口地址MOVAL,6DH5的字型代碼OUTDX,AL5,七段數(shù)碼管顯示JMPINPUTINPUTSIX:MOVDX,0288H;存入輸出口地址MOVAL,7DH6的字型代碼OUTDX,AL6,七段數(shù)碼管顯示JMPINPUTINPUTSEVEN:MOVDX,0288H ;存入輸出口地址MOVAL,07H 7的字型代碼OUTDX,AL 7,七段數(shù)碼管顯示JMPINPUT INPUTEIGHT:MOVDX,0288H ;存入輸出口地址MOVAL,7FH 8的字型代碼OUTDX,AL 8,七段數(shù)碼管顯示JMPINPUT INPUTNINE: MOVDX,0288H ;存入輸出口地址MOVAL,6FH 9的字型代碼OUTDX,AL 9,七段數(shù)碼管顯示JMPINPUT INPUTFINISH:MOVAH,4CH ;完畢INT21HCODEENDS ;代碼段完畢ENDSTART ;程序完畢6、程序改進原來的程序:CMPAL,39H ;將AL和9作比較JZNINE NINE改進緣由:程序可以再簡化改進后的程序:JMPNINE ;以上都不是跳轉(zhuǎn)到NINE題目二:DOS。試驗提示:十字路口交通燈的變化規(guī)律要求:30秒左右;30秒左右;1重復,到按下任意鍵完畢。微 機 實 驗 報 告1、試驗目的8255并行口的使用2、試驗連線3、流程圖參考流程圖:-14---15-微 機 實 驗 報 告開頭開頭8255C口輸入,A口輸出設置循環(huán)次數(shù),置CL=5C口給PC01從A口輸出,把握PA0燈亮滅延遲按上述方法分別給C口的PC1——PC71,是A8個燈挨次亮滅推斷CL=0?返回DOS4、試驗程序及注釋;初始化程序STACK SEGMENTSTACK ;STACK段,定位類型無DW100DUP(0) STACK ENDS ;STACK段完畢DATA SEGMENT ;定義數(shù)據(jù)段DATA ENDS ;數(shù)據(jù)段完畢〔此程序可以不需定義數(shù)據(jù)段〕CODE SEGMENT ;定義代碼段ASSUMECS:CODE,DS:DATASTART: MOVAL,10000000B 0,A口、B口、C口輸出MOVDX,28BH ;送把握存放器的口地址OUTDX,AL ;送把握字MOVAL,10000100B ;C口輸出,PC7=PC2=1,兩紅燈亮MOVDX,28AHOUTDX,ALMOVCX,1 ;循環(huán)次數(shù)=1CALLDELAY DELAY過程AGAIN:MOVAL,00100100B 東西路口紅燈亮OUTDX,ALMOVCX,10 ;循環(huán)次數(shù)=10,長延遲CALLDELAY DELAY過程ANDAL,00001111B 微 機 實 驗 報 告滅,東西路口紅燈亮OUTDX,AL3次,東西路口紅燈亮MOVBX,3 ;置黃燈閃的次數(shù)=3LP1: MOVAL,01000100B ;C口輸出,PC6=1,PC2=1,南北路口黃燈亮,東西路口紅燈亮OUTDX,ALMOVCX,1CALLDELAY DELAY過程ANDAL,10111111B ;C口輸出,PC6=0,PC2=1,南北路口黃燈滅,東西路口紅燈亮OUTDX,ALMOVCX,1CALLDELAY DELAY過程,延遲DECBXJNZLP1;南北路口紅燈亮,東西路口綠燈亮MOVAL,10000001B ;C口輸出,PC7=1,PC0=1,南北路口紅燈亮,東西路口綠燈亮OUTDX,ALMOVCX,10 DELAY過程,長延遲CALLDELAYANDAL,11110000B ;C口輸出,PC7=1,PC0=0,南北路口紅燈亮,東西路口綠燈滅OUTDX,AL,東西路口黃燈閃3次LP2:MOVBX,3MOVAL,10000010B;置黃燈閃的次數(shù)=3,;C口輸出,PC7=1,PC1=1,南北路口紅燈亮,東西路口黃燈亮OUTDX,ALMOVCX,1DELAY過程,延遲CALLDELAYANDAL,11111101B;C口輸出,PC7=1,PC1=0,南北路口紅燈亮,東西路口黃燈滅OUT DX,ALMOV CX,1CALL DELAY DELAY過程,延遲DEC BXJNZ LP2微 機 實 驗 報 告;檢查鍵盤狀態(tài),有按鍵完畢,無按鍵循環(huán)執(zhí)行MOV AH,0BH ;檢查鍵盤狀態(tài)〔不等待〕INT 21HCMP AL,00H ;比較,無按鍵循環(huán)JE AGAIN;返回DOCQUIT:MOVAL,00000000BMOVDX,28AHOUTDX,AL;C口輸出,南北路口、東西路口全部燈全滅DEL

溫馨提示

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

最新文檔

評論

0/150

提交評論