




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE 微機(jī)原理實(shí)驗(yàn)內(nèi)容2015實(shí)驗(yàn)一 上機(jī)方法及尋址方式練習(xí)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)匯編語(yǔ)言上機(jī)方法。深入了解DEBUG動(dòng)態(tài)調(diào)試軟件的應(yīng)用,掌握下列命令的使用方法:U 反匯編 G 運(yùn)行程序 D 顯示內(nèi)存內(nèi)容 R 顯示修改寄存器內(nèi)容 E 修改內(nèi)存內(nèi)容 T 單步執(zhí)行命令 Q 返回DOS實(shí)際感受段地址,偏移地址,存儲(chǔ)器組織及CPU寄存器等概念。掌握8086/8088的主要尋址方式。實(shí)驗(yàn)任務(wù)一 雙字相加 把內(nèi)存字單元DATA1和DATA2中的兩個(gè)數(shù)相加(例如123456H+456789H),結(jié)果存入SUM單元。 此程序的功能很簡(jiǎn)單,目的是為了通過(guò)該例掌握上機(jī)過(guò)程和實(shí)驗(yàn)方法。首先,對(duì)書(shū)寫(xiě)好的源程序進(jìn)行編輯,匯編
2、及連接,生成可執(zhí)行的EXE文件。然后對(duì)EXE文件進(jìn)行動(dòng)態(tài)調(diào)試,排除錯(cuò)誤,最終形成一個(gè)完全正確的程序。建立源程序 .ASM 為了使大家對(duì)標(biāo)準(zhǔn)匯編語(yǔ)言程序結(jié)構(gòu)有一個(gè)了解,并牢固掌握DEBUG調(diào)試程序的應(yīng)用。在這里給出上面實(shí)驗(yàn)任務(wù)的程序清單。程序1是一個(gè)標(biāo)準(zhǔn)的匯編語(yǔ)言程序,共有三個(gè)段:數(shù)據(jù)段、堆棧段及代碼段,在以后的編程中可以仿照這一結(jié)構(gòu)。 程序1:雙字相加DATA SEGMENT ;define data segment DATA1 DW 1234H DATA2 DW 5678H SUM DW ?DATA ENDSSTACK SEGMENT PARA STACK STACK ;define sta
3、ck segment DW 100 DUP (?) TOP LABEL WORDSTACK ENDSCODE SEGMENT ;define code segment ASSUME CS: CODE,DS:DATA,SS:STACKSTART:MOV AX, DATA ;set DS register to current data segment MOV DS, AX MOV AX, STACK ;set up stack SS and SP regist MOV SS, AX MOV SP, OFFSET TOP MOV AX, DATA1 ADD AX, DATA2 MOV SUM, A
4、X MOV AH,4CH ;return to DOS INT 21HCODE ENDS ;end of code segment END START ;end assembly匯編生成 .OBJ 文件 對(duì).ASM文件進(jìn)行匯編,生成目標(biāo)文件 .OBJ。 匯編結(jié)束時(shí)會(huì)顯示警告錯(cuò)誤的個(gè)數(shù)(Warning Errors)和嚴(yán)重錯(cuò)誤的個(gè)數(shù)(Severe Errors),這兩種錯(cuò)誤屬于.ASM文件中的語(yǔ)法性錯(cuò)誤。若出現(xiàn)錯(cuò)誤應(yīng)對(duì)源文件(.ASM文件)進(jìn)行修改,修改之后再進(jìn)行匯編直至錯(cuò)誤數(shù)為零時(shí)方可進(jìn)行下一步操作。連接生成 .EXE文件 連接后生成 .EXE可執(zhí)行文件。4. 利用DEBUG命令對(duì) .EXE文
5、件進(jìn)行調(diào)試 DEBUG是DOS提供的一種調(diào)試軟件。它可用于檢查修改存儲(chǔ)單元的內(nèi)容,裝載及運(yùn)行用戶(hù)程序。 進(jìn)入DEBUG后其狀態(tài)提示符為一短橫線(xiàn)“”,在此狀態(tài)下可用各種命令對(duì) .EXE進(jìn)行操作。下面是DEBUG的主要命令。(1) 對(duì) .EXE文件進(jìn)行反匯編U命令U命令格式一: U CS:00001501: 0000 B8F314 MOV AX, 14F3 上述命令從CS段,偏移地址為0000的單元開(kāi)始反匯編32個(gè)字節(jié)。在以上的反匯編清單中,最左一列是代碼段的段地址值,第二列是各指令的偏移地址值(指令的起始地址),然后依次是指令的機(jī)器碼與助記符。 U命令格式二: U 在32個(gè)字節(jié)的指令代碼反匯編完
6、之后,可再次使用U命令對(duì)后續(xù)代碼進(jìn)行反匯編,在此,U命令之后省略了地址,則從上一個(gè)U命令的最后一條指令的下一個(gè)字節(jié)開(kāi)始反匯編32個(gè)字節(jié)。 可反復(fù)使用上述兩種U命令格式,將原程序清單與反匯編清單進(jìn)行對(duì)比分析,然后回答下列問(wèn)題: 問(wèn)題1: .EXE裝入內(nèi)存后,其數(shù)據(jù)段的段地址是 。在未運(yùn)行 .EXE程序前,數(shù)據(jù)段的段地址是否已裝入到DS寄存器中? (請(qǐng)選擇回答:是/否)。 問(wèn)題2:反匯編清單中倒數(shù)第一行(按實(shí)際顯示行計(jì)算)是不是.EXE程序中的有效指令? (請(qǐng)選擇:是/不是)。(2) 檢查RAM區(qū)中的數(shù)據(jù)D命令 D命令格式: D 數(shù)據(jù)段段地址:偏移地址(0000) D命令從給定地址開(kāi)始連續(xù)顯示內(nèi)存
7、單元中的數(shù)據(jù),每行顯示16個(gè)字節(jié),每行的顯示格式為段地址:偏移地址 16個(gè)字節(jié)數(shù)據(jù)及各字節(jié)數(shù)據(jù)所對(duì)應(yīng)的ASCII碼字符。 若D命令中沒(méi)有給出地址,則從上一個(gè)D命令所顯示的最后一個(gè)字節(jié)的下一個(gè)字節(jié)開(kāi)始顯示。合理使用U命令和D命令,分析所顯示的信息并填寫(xiě)表1-1。運(yùn)行機(jī)制 (3)運(yùn)行程序G命令 G命令格式:G = CS:0000 斷點(diǎn)地址CPU從CS段,0000單元開(kāi)始連續(xù)執(zhí)行指令,當(dāng)遇到斷點(diǎn)時(shí)便會(huì)停止執(zhí)行。用G 命令執(zhí)行完程序后再使用D 命令顯示內(nèi)存單元的內(nèi)容,填寫(xiě)表1-2中各項(xiàng)數(shù)據(jù)和運(yùn)行結(jié)果,并分析結(jié)果是否正確。(4)檢查寄存器內(nèi)容R命令R R命令會(huì)顯示/修改CPU 所有寄存器的內(nèi)容,并給出程
8、序執(zhí)行后各標(biāo)志位的當(dāng)前狀態(tài)。在此,不再列出執(zhí)行情況。 請(qǐng)用R命令顯示CPU 寄存器的內(nèi)容,填寫(xiě)表1-3。(5) 修改內(nèi)存單元內(nèi)容E命令不連續(xù)修改內(nèi)存單元內(nèi)容,命令格式如下:E 1500:0000 設(shè)顯示1500H:0000H單元內(nèi)容為:1500:0000 24. 如果需要修改該單元內(nèi)容可以由鍵盤(pán)輸入數(shù)據(jù),按空格則顯示/修改下一單元的內(nèi)容。例如:把1500H:0000H單元的24H內(nèi)容修改成(注意,在DEBUG中顯示的地址碼數(shù)據(jù)均默認(rèn)為十六進(jìn)制形式)78H,其操作如下:1500:0000 24. 78 36. 其中36H為1500H:0001H單元的內(nèi)容。用戶(hù)可以不斷修改相繼單元的內(nèi)容,若某一字
9、節(jié)無(wú)需修改可用空格鍵跳過(guò),直到用回車(chē)結(jié)束該命令為止。修改連續(xù)單元的內(nèi)容。命令格式為:E 1500:0000 12 34 123 該命令將12H、 34H、 31H(1的ASCII碼)32H、 33H 存放到從1500:0000開(kāi)始的連續(xù)單元中去。現(xiàn)在要求用E命令按表1-4中給出的數(shù)據(jù)修改DATA1和DATA2單元的內(nèi)容,然后用 G命令運(yùn)行程序,填寫(xiě)表1-4。(6)單步執(zhí)行命令T命令使用T命令之前,先使用G命令執(zhí)行程序,使程序暫停在斷點(diǎn)處,然后可以使用T命令單步執(zhí)行指令,其命令格式為:T 其功能是從當(dāng)前的CS:IP 處執(zhí)行一條指令后暫停,自動(dòng)顯示各寄存器的內(nèi)容、標(biāo)志位的狀態(tài)并給出下一次將要執(zhí)行的
10、指令地址及代碼。 注意,對(duì)REI指令、中斷指令、DOS功能調(diào)用指令等不能用T命令單步執(zhí)行。 請(qǐng)用T命令單步執(zhí)行程序,一次執(zhí)行一條指令,注意觀察各寄存器如AX、IP等的變化情況。(7)退出 DEBUGQ命令QQ 命令后退出DEBUG,返回DOS。三實(shí)驗(yàn)任務(wù)二: 尋址方式練習(xí) 下列程序用于練習(xí)8086/8088的立即尋址寄存器尋址直接尋址寄存器間接尋址寄存器相對(duì)尋址等七種尋址方式,為了方便調(diào)試程序,程序清單的代碼段中給出了指令的行號(hào),輸入程序時(shí)請(qǐng)不要輸入行號(hào)。 程序清單如下:DATA1 SEGMENT M1DB 0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7H M2
11、DB 0A8H,0A9HDATA1 ENDSDATA2 SEGMENT N1DB 0B0H,0B1H,0B2H,0B3H, 0B4H,0B5H,0B6H,0B7H N2DB 0B8H,0B9HDATA2 ENDSSTACK SEGMENT PARA STACK STACK DB 0C0H,0C1H,0C2H,0C3H,0C4H,0C5H ,0C6H,0C7H DB 0C8H,0C9H DW 100 DUP (?) TOP LABEL WORDSTACK ENDSCODE SEGMENT ASSUME CS: CODE,DS:DATA1,ES:DATA2,SS:STACK1 START:MOV
12、AX,DATA1 2 MOV DS,AX 3 MOV AX,DATA2 4 MOV ES,AX 5 MOV AX,STACK 6 MOV SS,AX 7 MOV SP,OFFSET TOP 8 MOV SI,0001H 9 MOV DI,0002H10 MOV BP,0003H11 MOV BX,0004H12 MOV AL,10013 MOV AL,BL14 MOV AL,M115 MOV AL,BX16 MOV AL,ES:BX17 MOV AL,BP 18 MOV AL,BX+05H 19 MOV AL,M1BX20 MOV AL,ES:N1BX 21 MOV AL,BXSI22 MOV
13、 AL,M1BXSI23 MOV AL,N1BXDI24 MOV AL,BPDI25 MOV AH,4CH26 INT 21HCODE ENDSEND START1.建立源程序,然后匯編、連接生成目標(biāo)文件。2.合理使用DEBUG的U命令和D命令,檢查RAM區(qū)中的數(shù)據(jù),分析所顯示的信息并填寫(xiě)表1-5。3. 利用U命令對(duì) .EXE文件進(jìn)行反匯編, 分析反匯編清單,從第12條指令開(kāi)始把每條指令的偏移地址填入表1-6的“指令的偏移地址”一欄中。利用T命令從第12條指令開(kāi)始單步執(zhí)行程序,每執(zhí)行一條指令填寫(xiě)表1-6中對(duì)應(yīng)行的其它欄(“SRC尋址方式”、“SRC的地址”、及“AL之值”)。實(shí)驗(yàn)數(shù)據(jù)記錄頁(yè) 實(shí)
14、驗(yàn)一 上機(jī)方法及尋址方式練習(xí)姓 名: 學(xué) 號(hào): 實(shí)驗(yàn)室門(mén)牌號(hào): 實(shí)驗(yàn)桌號(hào): 表1-1運(yùn)行程序前的數(shù)據(jù)存儲(chǔ)情況標(biāo)號(hào)(變量名) 段地址 偏移地址 內(nèi)存中的內(nèi)容 DATA1 DATA2 SUM表1-2 運(yùn)行程序后的數(shù)據(jù)存儲(chǔ)情況標(biāo)號(hào)(變量名)段地址偏移量?jī)?nèi)存中的內(nèi)容 DATA1 DATA2 SUM表1-3 有關(guān)寄存器內(nèi)容寄存器名 CS DS IP AX BX CX SI DI 內(nèi)容表1-4 另一組實(shí)驗(yàn)數(shù)據(jù)及運(yùn)行結(jié)果標(biāo)號(hào)(變量名)段地址偏移量?jī)?nèi)存中的內(nèi)容 DATA1(你學(xué)號(hào)的前4位) DATA2(你學(xué)號(hào)的最后4位) SUM表1-5 各段的數(shù)據(jù)分配情況DATA1區(qū)地址與數(shù)據(jù)DATA2區(qū)地址與數(shù)據(jù)STACK
15、 區(qū)地址與數(shù)據(jù)段地址偏移地址數(shù)據(jù)段地址偏移地址數(shù)據(jù)段地址偏移地址數(shù)據(jù)0000H0000H0000H0001H0001H0001H0002H0002H0002H0003H0003H0003H0004H0004H0004H0005H0005H0005H0006H0006H0006H0007H0007H0007H0008H0008H0008H0009H0009H0009H表1-6 指令地址及執(zhí)行情況行號(hào)指令指令的偏移地址SRC的尋址方式SRC的偏移地址指令執(zhí)行后AL之值12MOV AL,10013MOV AL,BL14MOV AL,M115MOV AL,BX16MOV AL,ES:BX17MOV A
16、L,BP18MOV AL,BX+05H19MOV AL,M2BX20MOV AL,ES:N2BX21MOV AL,BXSI22MOV AL,M2BXSI23MOV AL,N2BXDI24MOV AL,BPDI 注:SRC指源操作數(shù)。 實(shí)驗(yàn)二 串處理程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康倪M(jìn)一步使用DEBUG的調(diào)試命令,達(dá)到熟練掌握的目的。學(xué)習(xí)串處理程序的設(shè)計(jì)方法,牢固掌握串操作指令及其用法。學(xué)習(xí)DOS功能調(diào)用方法。實(shí)驗(yàn)任務(wù)一 字符串傳送 編寫(xiě)程序,建立數(shù)據(jù)段DATA,將你的姓名(漢語(yǔ)拼音)及學(xué)號(hào)存入數(shù)據(jù)段的BUFFER1區(qū)域,然后利用程序?qū)UFFER1區(qū)域中的字符串(姓名及學(xué)號(hào))依次傳送到從BUFFER2開(kāi)始的內(nèi)存
17、區(qū)域中去。1. 編程提示 數(shù)據(jù)段可以定義為兩個(gè)段:源數(shù)據(jù)區(qū)定義為數(shù)據(jù)段,目的數(shù)據(jù)區(qū)定義為附加段。DATA SEGMENTBUFFER1 DB WANG HUAN 01982001M EQU $-BUFFER1DATA ENDSEXTRA SEGMENTBUFFER2 DB M DUP (?)EXTRA ENDS 串的傳送可用MOVSB指令來(lái)實(shí)現(xiàn),注意,MOVSB要求DS與SI寄存器配合使用,ES與DI配合使用。另外,用CX中的計(jì)數(shù)值可控制MOVSB指令的重復(fù)次數(shù)。指令格式為: REP MOVSB 2.實(shí)驗(yàn)要求及問(wèn)題(1) 編寫(xiě)程序,在DEBUG下運(yùn)行并觀察結(jié)果,填寫(xiě)表2-1。表2-1 反匯編清
18、單中所反映的相關(guān)信息*注:最后一條指令是對(duì)應(yīng)于代碼段中最后一條指令(2)在未執(zhí)行程序之前,用D命令顯示內(nèi)存區(qū)域的內(nèi)容,填寫(xiě)表2-2。表2-2 未執(zhí)行程序前的數(shù)據(jù)區(qū)內(nèi)容(3)執(zhí)行程序以后用D命令顯示內(nèi)存區(qū)的內(nèi)容,填寫(xiě)表2-3。表2-3 執(zhí)行程序之后的數(shù)據(jù)區(qū)內(nèi)容(4)用R命令檢查寄存器的內(nèi)容填寫(xiě)表2-4。表2-4 有關(guān)寄存器內(nèi)容寄存器名 CS DS IP AX BX CX SI DI 內(nèi)容 三實(shí)驗(yàn)任務(wù)二 DOS 功能調(diào)用DOS系統(tǒng)為程序員提供許多子程序可供用戶(hù)直接調(diào)用。調(diào)用時(shí)需要使用中斷指令:INT 21H在使用該指令前,應(yīng)將調(diào)用的功能號(hào)送入AH,有關(guān)入口參量送入指定寄存器。若有出口參量,中斷調(diào)用
19、返回后,結(jié)果在指定的寄存器或存儲(chǔ)單元中。其調(diào)用方法如下:送入口參量給指定寄存器;AH 功能號(hào);INT 21H ;主要的幾個(gè)DOS功能調(diào)用說(shuō)明文件如下。1. 4CH號(hào)功能調(diào)用 MOV AH,4CH ;子程序編號(hào)4CHAH;即功能號(hào)4CHAHINT 21H;返回DOS2. 01H號(hào)功能調(diào)用 ;從鍵盤(pán)輸入一個(gè)字符(功能號(hào)=1);功能號(hào) 1 AH;入口參數(shù):無(wú)INT 21H ;等待按鍵,按下一個(gè)鍵則該句執(zhí)行完畢 ;字符回顯 ;出口參數(shù):AL中有鍵入的字符(ASCII碼) 3. 08H號(hào)功能調(diào)用 ;從鍵盤(pán)輸入一個(gè)字符;功能號(hào) 08 AH;入口參數(shù):無(wú)INT 21H ;等待按鍵,按下一個(gè)鍵則該句執(zhí)行完,
20、;字符不回顯 ;出口參數(shù):AL中有鍵入的字符(ASCII碼)4. 02H號(hào)功能調(diào)用 ;在顯示器上顯示一個(gè)字符(功能號(hào)=2);功能號(hào) 02H AH;入口參數(shù):要顯示的字符(ASCII碼)DL INT 21H02H號(hào)功能調(diào)用注意事項(xiàng):(1)02H號(hào)功能調(diào)用會(huì)占用AL寄存器。為了防止02H號(hào)功能調(diào)用破壞AL寄存器的內(nèi)容,調(diào)用前可把AX壓棧,調(diào)用完后從堆棧中彈出AX,以便恢復(fù)AL之值。 (2)調(diào)用21H中斷的02號(hào)功能時(shí),當(dāng)DL中置入00(或20H)時(shí)即可顯示一個(gè)空格,必須注意,用DOS調(diào)用顯示字符,當(dāng)ASCII碼為 07H、08H、09H、0AH和0DH時(shí),不會(huì)顯示與之對(duì)應(yīng)的字符,DOS分別將這些A
21、SCII碼解釋為振鈴(BEL)、退格(BS)、制表(TAB)、換行(LF)和回車(chē)(CR)的控制符,這時(shí)屏幕上不會(huì)有字符顯示,僅僅是執(zhí)行控制碼所表示的操作。所以當(dāng)按遞增順序顯示ASCII碼時(shí),應(yīng)在顯示這些控制碼的地方顯示空格,否則顯示格式不對(duì)。 (3)用DOS調(diào)用時(shí),應(yīng)用控制碼0AH和0DH分別控制換行和回車(chē)操作。實(shí)驗(yàn)任務(wù)二要求:編寫(xiě)下列程序并上機(jī)運(yùn)行,由鍵盤(pán)輸入1個(gè)英文字母,屏幕上顯示該字母。若輸入的是小寫(xiě)字母,則另起一行顯示對(duì)應(yīng)的大寫(xiě)字母;若輸入的是大寫(xiě)字母,則另起一行顯示對(duì)應(yīng)的小寫(xiě)字母。實(shí)驗(yàn)三 分支程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康恼莆辗种С绦虻脑O(shè)計(jì)方法。掌握無(wú)條件轉(zhuǎn)移指令(JMP)及條件轉(zhuǎn)移指令的應(yīng)用。進(jìn)
22、一步使用DEBUG的調(diào)試命令,達(dá)到熟練使用的目的。在DEBUG中提供了測(cè)試各個(gè)標(biāo)志位的手段,各標(biāo)志位的復(fù)位(“0”狀態(tài))和置位(“1”狀態(tài))是用字符表示的,如表3-1所示。在實(shí)驗(yàn)過(guò)程中要善于使用T命令、 R命令觀察分析標(biāo)志位的變化情況。表3-1 標(biāo)志寄存器各標(biāo)志位的顯示字符實(shí)驗(yàn)任務(wù) 碼制轉(zhuǎn)換 碼制轉(zhuǎn)換的內(nèi)容很多,現(xiàn)代技術(shù)中有各種各樣的編碼形成。在計(jì)算機(jī)領(lǐng)域中,最常用的碼制有ASCII碼、十進(jìn)制碼、二進(jìn)制碼及十六進(jìn)制碼等。這些碼制在實(shí)際應(yīng)用中有時(shí)需要進(jìn)行相互轉(zhuǎn)換,在轉(zhuǎn)換過(guò)程中可用旋轉(zhuǎn)、移位、比較、轉(zhuǎn)移等指令來(lái)實(shí)現(xiàn)。至于轉(zhuǎn)換算法,對(duì)不同的編碼規(guī)則其算法就不同,請(qǐng)大家參閱有關(guān)書(shū)籍準(zhǔn)備下列實(shí)驗(yàn)內(nèi)容。任
23、務(wù)3-1: 二進(jìn)制到ASCII碼的轉(zhuǎn)換 在DATA單元存放有一個(gè)8位二進(jìn)制碼,將其按位轉(zhuǎn)換成一串ASCII碼,即1轉(zhuǎn)換成1的ASCII碼31H;0轉(zhuǎn)換成30H。并依次存放在以STRING開(kāi)始的RAM區(qū)中(高位在前,低位在后)。轉(zhuǎn)換示例見(jiàn)表3-2。實(shí)驗(yàn)要求:1. 在表3-2中分別給出了DATA單元中的三個(gè)數(shù)據(jù)。分別將十六進(jìn)制數(shù)6B、72和C9送入DATA單元,運(yùn)行程序后把結(jié)果填寫(xiě)到表3-2的對(duì)應(yīng)欄目中,并分析結(jié)果的正確性。2. 按調(diào)試過(guò)程中的實(shí)際內(nèi)存分配情況回答下列問(wèn)題:(1)代碼的段地址是 ,第一條指令的偏移地址是 ,最后一條指令的偏移地址是 。(2)源字符串所在數(shù)據(jù)段的段地址是 ,偏移地址是
24、 。(3)目標(biāo)字符串所在段的段地址是 ,偏移地址是 。表3-2 二進(jìn)制轉(zhuǎn)換成ASCII碼 次數(shù) 及示例 實(shí)驗(yàn)數(shù)據(jù) 實(shí)驗(yàn)結(jié)果 十六進(jìn)制 二進(jìn)制 示例 D2 11010010 31 31 30 31 30 30 31 30 1 6B 01101011 2 72 01110010 3 C9 11001001任務(wù)3-2 : ASCII 碼到十進(jìn)制的轉(zhuǎn)換 從STRING1單元開(kāi)始,存放有一串ASCII碼字符(其字符長(zhǎng)度為十六個(gè)字節(jié),每一個(gè)ASCII碼占一個(gè)字節(jié))。將STRING1中每個(gè)字符轉(zhuǎn)換成與之對(duì)應(yīng)的十進(jìn)制數(shù)字,并存放在以STRING2開(kāi)始的區(qū)中(每個(gè)十進(jìn)制數(shù)字占一個(gè)字節(jié))。如果某一個(gè)ASCII碼不
25、是0-9之間的數(shù),則將STRING2字串中對(duì)應(yīng)單元置為FFH。實(shí)驗(yàn)要求:請(qǐng)參閱表4-1,編寫(xiě)程序上機(jī)調(diào)試。運(yùn)行程序,填寫(xiě)表3-3。表3-3 ASCII碼到十進(jìn)制轉(zhuǎn)換的實(shí)驗(yàn)數(shù)據(jù)與運(yùn)行結(jié)果任務(wù)3-3:多分支程序設(shè)計(jì) 編程顯示一個(gè)簡(jiǎn)單菜單1,2,3(菜單顯示形式不限)。當(dāng)按下1時(shí),在屏幕上顯示你的姓名(漢語(yǔ)拼音);當(dāng)按下2時(shí),在屏幕上顯示你的學(xué)號(hào)。當(dāng)按下3時(shí),程序結(jié)束。要求:姓名和學(xué)號(hào)不能在同一行顯示(即要控制換行操作)。實(shí)驗(yàn)四 循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康恼莆昭h(huán)程序的設(shè)計(jì)方法,掌握變址技術(shù)的應(yīng)用。掌握DOS功能調(diào)用方法。實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)1. DOS功能調(diào)用 表4-1是ASCII碼編碼表,要求編寫(xiě)程序,將
26、這些字符以16行、16列的表格形式顯示出來(lái)(顯示效果見(jiàn)圖4-2),要求顯示時(shí)按ASCII碼的遞增順序分行顯示(即行內(nèi)ASCII碼依次遞增,與表4-1中給出的表格行列位置正好倒置)。表4-1 ASCII碼編碼表表4-1 ASCII碼編碼表(續(xù))編程提示:(1).顯示一個(gè)字符,可使用21H中斷的02號(hào)功能來(lái)實(shí)現(xiàn)。方法如下: MOV AH, 02H ; 02號(hào)功能調(diào)用 MOV DL, 要顯示的ASCII碼/動(dòng)作控制碼 INT 21H調(diào)用21H中斷的02號(hào)功能時(shí),當(dāng)DL中置入00(或20H)時(shí)即可顯示一個(gè)空格,必須注意,用DOS調(diào)用顯示字符,當(dāng)ASCII碼為 07H、08H、09H、0AH和0DH時(shí),
27、不會(huì)顯示與之對(duì)應(yīng)的字符,DOS分別將這些ASCII碼解釋為振鈴(BEL)、退格(BS)、制表(TAB)、換行(LF)和回車(chē)(CR)的控制符,這時(shí)屏幕上不會(huì)有字符顯示,僅僅是執(zhí)行控制碼所表示的操作。所以當(dāng)按遞增順序顯示ASCII碼時(shí),應(yīng)在顯示這些控制碼的地方顯示空格,否則顯示格式不對(duì)。 另外,用DOS調(diào)用時(shí),應(yīng)用控制碼0AH和0DH分別控制換行和回車(chē)操作。(2).使用BIOS調(diào)用時(shí),所有字符都可以顯示出來(lái)。用BIOS調(diào)用,可用BIOS中斷10H的0A號(hào)功能實(shí)現(xiàn)字符顯示。BIOS中斷10H的0A號(hào)功能調(diào)用參數(shù)如下:入口參數(shù):AH=0AH ;選擇10H中斷的0A號(hào)功能AL=顯示字符的ASCII碼 ;00FFHBH=03 ;選擇屏幕的顯示頁(yè),一般取0BL ;文本方式下不預(yù)置BL之值。CX=顯示次數(shù) ;決定AL中的字符在屏幕上顯示的次數(shù),取1。出口參數(shù):一個(gè)或多個(gè)字符顯示在屏幕上。使用BIOS調(diào)用時(shí),要用10H的02號(hào)功能控制光標(biāo)的移動(dòng)(BIOS 10H中斷的0A號(hào)功能調(diào)用不移動(dòng)光標(biāo)),以實(shí)現(xiàn)顯示空格、換行、回車(chē)等功能。BIOS中斷10H的02號(hào)功能調(diào)用參數(shù):入口參數(shù):AH=02H ;控制光標(biāo)位置DH=光標(biāo)行位置 ;024行DL=光標(biāo)列位置 ;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)單位工會(huì)活動(dòng)方案
- 稅務(wù)顧問(wèn)服務(wù)協(xié)議書(shū)
- 云計(jì)算服務(wù)平臺(tái)建設(shè)合同
- 樁基工程施工專(zhuān)業(yè)分包規(guī)定合同
- 合同付款補(bǔ)充協(xié)議書(shū)
- 煙草產(chǎn)品購(gòu)銷(xiāo)合同
- 公司商鋪?zhàn)赓U合同書(shū)
- 獨(dú)家代理銷(xiāo)售合同
- 辦公效率提升解決方案實(shí)踐
- 旅游行業(yè)線(xiàn)上營(yíng)銷(xiāo)推廣協(xié)議
- 新能源電力市場(chǎng)與電力交易
- 《英國(guó)飲食文化》課件
- 《SolidWorks建模實(shí)例教程》第4章 綜合應(yīng)用實(shí)例
- 視頻號(hào)運(yùn)營(yíng)規(guī)則
- 初三語(yǔ)文總復(fù)習(xí)全程計(jì)劃表
- 九年級(jí)初中語(yǔ)文閱讀理解專(zhuān)題訓(xùn)練及答案
- 班規(guī)班約高一班規(guī)班約及考核細(xì)則
- 《幼兒文學(xué)》 課件全套 第1-8章 幼兒文學(xué)概述- 圖畫(huà)書(shū)
- 第15課 記憶小竅門(mén)(教學(xué)設(shè)計(jì))-蘇教版心理健康四年級(jí)上冊(cè)
- 41篇小學(xué)三年級(jí)語(yǔ)文課外閱讀練習(xí)題及答案
- 《旅游學(xué)概論》第一章
評(píng)論
0/150
提交評(píng)論