計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)報(bào)告_第1頁
計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)報(bào)告_第2頁
計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)報(bào)告_第3頁
計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)報(bào)告_第4頁
計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)一 乘法運(yùn)算實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、 了解調(diào)試程序DEBUG的常用命令和功能。2、 掌握多字節(jié)乘法運(yùn)算程序的編寫方法。3、 學(xué)會(huì)程序調(diào)試方法。2、 實(shí)驗(yàn)原理 序號(hào)命令功 能0      ?顯示Debug命令列表。1      a匯編8086/8087/8088記憶碼。2      c比較內(nèi)存的兩個(gè)部分。3     d顯示部分內(nèi)存的內(nèi)容。4     e從指

2、定地址開始,將數(shù)據(jù)輸入到內(nèi)存。5     f使用指定值填充一段內(nèi)存。6     g運(yùn)行在內(nèi)存中的可執(zhí)行文件。7      h執(zhí)行十六進(jìn)制運(yùn)算。8      i顯示來自特定端口的1字節(jié)值。9      l將文件或磁盤扇區(qū)內(nèi)容加載到內(nèi)存。10   m復(fù)制內(nèi)存塊中的內(nèi)容11   /n為l或w命令指定文件,或者指定正在測(cè)試的文

3、件的參數(shù)。12   o向輸出端口發(fā)送1個(gè)字節(jié)的值。13   p執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程。14   q停止Debug會(huì)話。15   r顯示或改變一個(gè)或多個(gè)寄存器。16     s在部分內(nèi)存中搜索一個(gè)或多個(gè)字節(jié)值的模式。17   t執(zhí)行一條指令,然后顯示所有寄存器的內(nèi)容、所有標(biāo)志的狀態(tài)和Debug下一步要執(zhí)行的指令的解碼形式。18    u反匯編字節(jié)并顯示相應(yīng)的原語句。19    

4、w將被測(cè)試文件寫入磁盤。20    xa分配擴(kuò)展內(nèi)存。21    xd釋放擴(kuò)展內(nèi)存。22    xm映射擴(kuò)展內(nèi)存頁。23     xs顯示擴(kuò)展內(nèi)存的狀態(tài)。三、實(shí)驗(yàn)內(nèi)容:將兩個(gè)無符號(hào)數(shù)相乘,將結(jié)果數(shù)存入規(guī)定地址。被乘數(shù)和乘數(shù)的存放地址及數(shù)據(jù)如下:名稱地址數(shù)據(jù)被乘數(shù)2000:00002000:00012A30乘數(shù)2000:00022000:0001151B乘積2000:00042000:0007注意:數(shù)據(jù)低位在前,高位在后。四、實(shí)驗(yàn)報(bào)告內(nèi)容:1、實(shí)驗(yàn)用源程序:開機(jī)選擇“

5、開始”“運(yùn)行”輸入“command”輸入“debug”調(diào)出debug應(yīng)用程序。Debug源程序:D 2000:0000 ;查看部分內(nèi)存內(nèi)容E 2000:0000 2A 30 15 1B ;寫入數(shù)據(jù)D 2000:0000 ;查看輸入后的數(shù)據(jù)A 回車 ;寫程序 MOV AX,2000 MOV DS,AX MOV AX,0000 MOV BX,0002 MUL BX ;讓AX乘以DX,結(jié)果存入DX:AX MOV 0004,AX MOV 0007,DX INT 20H ;正常中斷程序 Ctrl+M ;退出編程,由鍵盤輸入 G ;運(yùn)行程序 D 2000:0000 ;查看程序運(yùn)行結(jié)果2、 實(shí)驗(yàn)結(jié)果分析輸出

6、結(jié)果顯示為72-61 18-05結(jié)果正確。實(shí)驗(yàn)中遇到的問題,在debug里輸入程序要細(xì)心,如果輸入有誤為保證結(jié)果的正確應(yīng)重新打開debug程序。實(shí)驗(yàn)中發(fā)現(xiàn)輸入的大小寫對(duì)程序的結(jié)果沒有影響。實(shí)驗(yàn)二 除法運(yùn)算實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、了解調(diào)試程序DEBUG的常用命令和功能。2、掌握多字節(jié)除法運(yùn)算程序的編寫方法。3、學(xué)會(huì)程序調(diào)試方法。二、 實(shí)驗(yàn)內(nèi)容:將兩個(gè)無符號(hào)數(shù)相除,將結(jié)果數(shù)存入規(guī)定地址。被除數(shù)和除數(shù)的存放地址及數(shù)據(jù)如下:名稱地址數(shù)據(jù)被除數(shù)除數(shù)2000:001000132000:001400152A3B4C5D7C5D商余數(shù)2000:001600172000:00180019數(shù)據(jù)低位在前,高位在后。

7、三、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序按照實(shí)驗(yàn)一中的方法調(diào)出debug: Debug源程序:D 2000:0000 ;查看部分內(nèi)存內(nèi)容E 2000:0000 5D 7C 5D 4C 3B 2A ;寫入數(shù)據(jù)D 2000:0000 ;查看輸入后的數(shù)據(jù)A ;寫程序 MOV AX,2A3B MOV DX,4C5D MOV BX,7C5D MOV AX,0010 MOV DX,0012 MOV BX,0014 DIV BX ;被除數(shù)DX:AX除BX,商存入AX,余數(shù)存到DX MOV 0016,AX MOV 0018,DX INT 20H ;正常中斷程序 Ctrl+M ;退出編程,由鍵盤輸入 G ;運(yùn)行程

8、序 D 2000:0000 ;查看程序運(yùn)行結(jié)果2、 實(shí)驗(yàn)結(jié)果分析實(shí)驗(yàn)正確結(jié)果:7D-FF 9E-11實(shí)驗(yàn)中應(yīng)注意的問題,在輸入數(shù)值時(shí)應(yīng)高低位顛倒輸入,程序運(yùn)算時(shí)是先進(jìn)后出。遇到的問題:當(dāng)輸入正序時(shí)得到的結(jié)果是EE-56 E7-6F(為錯(cuò)誤結(jié)果)。 實(shí)驗(yàn)三 數(shù)據(jù)轉(zhuǎn)換實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、進(jìn)一步掌握DEBUG使用方法。2、掌握數(shù)制轉(zhuǎn)換程序的編寫方法。3、學(xué)會(huì)調(diào)試循環(huán)程序和子程序方法。二、 實(shí)驗(yàn)內(nèi)容:將單元2000:0000003中的8位十進(jìn)制數(shù)35,26,38,74(數(shù)據(jù)高位在前,低位在后),轉(zhuǎn)換成二進(jìn)制數(shù),存入單元2000:00040007中。在編寫程序時(shí),要充分利用循環(huán)程序和調(diào)用子程序的方法

9、來簡化程序設(shè)計(jì),并注意循環(huán)的地址及子程序入口地址的設(shè)置方法。三、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序STACKS SEGMENT STACK ;堆棧段 DW 128 DUP(?) ;只有128個(gè)字節(jié) STACKS ENDS DATAS SEGMENT ;數(shù)據(jù)段 D1 DB 10 ; D2 DB ; D3 DB 38H ; D4 DB 74H DATAS ENDS CODES SEGMENT ;代碼段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV AX,2000H MOV DS,AX MOV AX,2635H MOV

10、 DI,0000H MOV DI,AX MOV DI,0002H MOV AX,7438H MOV DI,AX MOV BL,10 MOV BX,0010 MOV BX,AL DO1 MACRO ADD1,ADD2 MOV SI,CX MOV DI,0000H MOV CX,4 NEXT: MOV AL,DI SHR AL,4 MUL BL PUSH AX MOV AL,DI AND AL,0FH POP DX XOR AH,AH XOR DH,DH ADD AL,DL MOV SI,CL+4 MOV DI+4,AL INC DI LOOP NEXT ENDM DO1 0H 4H DO1 1

11、5 DO1 2 6 DO1 3 7 MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START實(shí)驗(yàn)四 顯示字符串實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、掌握宏匯編語言源程序的編輯方法。2、學(xué)會(huì)用MASM及LINK程序?qū)⒃闯绦蛭募D(zhuǎn)換成可執(zhí)行文件的方法。3、學(xué)會(huì)調(diào)用DOS軟中斷功能來顯示字符串的方法。二、 實(shí)驗(yàn)步驟:1、 利用全屏幕編輯程序來編輯源程序,文件擴(kuò)展名為ASM,操作如下:A> NE 盤號(hào):文件名.ASM2、 利用MASM程序?qū)⒃闯绦蛭募R編成目標(biāo)文件,目標(biāo)文件擴(kuò)展名為OBJ,操作如下: A>MASM 盤號(hào):文件名.ASM 盤號(hào):文件名.OBJ在編輯中發(fā)

12、生錯(cuò)誤,要用NE程序來修改源程序文件。3、 用LINK程序?qū)⒛繕?biāo)文件轉(zhuǎn)換成可執(zhí)行文件,可執(zhí)行文件擴(kuò)展名為EXE,操作如下: A>LINK 盤號(hào):文件名.OBJ 盤號(hào):文件名.EXE4、在DOS環(huán)境下執(zhí)行可執(zhí)行文件。三、 實(shí)驗(yàn)內(nèi)容:按照宏匯編語言源程序格式的要求,編寫一個(gè)文件,顯示如下字符串:I like microcomputer very much.四、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序 STACKS SEGMENT STACK ;堆棧段 DW 128 DUP(?) ;只有128個(gè)字節(jié) STACKS ENDS DATAS SEGMENT ;數(shù)據(jù)段 MSG1 DB 'I like

13、 microcomputer very much.','$' DATAS ENDS CODES SEGMENT ;代碼段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV DX,OFFSET MSG1 MOV AH,9 INT 21H MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START2、 實(shí)驗(yàn)結(jié)果分析實(shí)驗(yàn)顯示出了“I like microcomputer very much.”實(shí)驗(yàn)五 顯示字符串實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、進(jìn)一步掌握字符串的顯示方法。2

14、、掌握鍵盤信號(hào)的輸入和分析方法。3、進(jìn)一步熟悉源程序的編寫方法。二、 實(shí)驗(yàn)內(nèi)容:先使計(jì)算機(jī)提問下列問題:Do you like this lesson(Y/N)?如果用戶回答N,計(jì)算機(jī)回答:You should change your interest.如果用戶回答Y,計(jì)算機(jī)回答:You are good student. 三、 實(shí)驗(yàn)報(bào)告:1、 實(shí)驗(yàn)用源程序:STACKS SEGMENT STACK ;堆棧段 DW 128 DUP(?) ;注意這里只有128個(gè)字節(jié) STACKS ENDS DATAS SEGMENT ;數(shù)據(jù)段 MSG1 DB 'Do you like this less

15、on(Y/N)?','$' MSG2 DB 10,'You should change your interest.','$' MSG3 DB 10,'You are good student.','$' DATAS ENDS CODES SEGMENT ;代碼段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX;請(qǐng)?jiān)谶@里添加您的代碼 MOV DX,OFFSET MSG1 MOV AH,9 INT 21H MOV AH

16、,1 INT 21H CMP AL,'Y' JZ Y1 CMP AL,'y' JZ Y1 CMP AL,'N' JZ Y2 CMP AL,'n' JZ Y2 Y1: MOV DX,OFFSET MSG3 MOV AH,9 INT 21H JMP DONE Y2: MOV DX,OFFSET MSG2 MOV AH,9 INT 21H DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START實(shí)驗(yàn)六 數(shù)據(jù)排序?qū)嶒?yàn)一、 實(shí)驗(yàn)?zāi)康模?、掌握比較數(shù)據(jù)大小的方法。2、掌握由大到小排列數(shù)據(jù)的方法

17、。3、掌握顯示某一數(shù)據(jù)區(qū)的方法。二、 實(shí)驗(yàn)內(nèi)容:先在數(shù)據(jù)區(qū)輸入十個(gè)隨機(jī)排列的數(shù)據(jù),然后用氣泡排序法把數(shù)據(jù)由大到小排列好,并顯示在屏幕上。然后改變數(shù)據(jù)的內(nèi)容,再用同樣的程序來排列,并顯示出結(jié)果。第一次排列的數(shù)據(jù)為:41H,70H,03H,53H,88H,16H,20H,3FH,74H,8EH第二次排列的數(shù)據(jù)為:10H,78H,23H,04H,1AH,7AH,35H,4BH,9FH,0BH顯示結(jié)果:班級(jí),學(xué)號(hào),名字排序好的數(shù)據(jù)。 三、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序STACKS SEGMENT STACK ;堆棧段 DW 128 DUP(?) STACKS ENDS DATAS SEGMENT

18、;數(shù)據(jù)段 MSG1 DB 'Do you like this lesson(Y/N)?','$' MSG2 DB 10,'You should change your interest.','$' MSG3 DB 10,'You are good student.','$' DATAS ENDS CODES SEGMENT ;代碼段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV DX,OFFSET

19、MSG1 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,'Y' JZ Y1 CMP AL,'y' JZ Y1 CMP AL,'N' JZ Y2 CMP AL,'n' JZ Y2 Y1: MOV DX,OFFSET MSG3 MOV AH,9 INT 21H JMP DONE Y2: MOV DX,OFFSET MSG2 MOV AH,9 INT 21H DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START實(shí)驗(yàn)七 顯示字符串實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?/p>

20、1、掌握顯示菜單的方法。2、學(xué)會(huì)分析鍵盤輸入數(shù)據(jù)的方法。3、掌握編寫宏指令和宏調(diào)用的方法。二、 實(shí)驗(yàn)步驟:先在屏幕上顯示下列菜單 What item do you want to know?1. My name2. My age3. My interesting work4. My familyPlease input the number:然后根據(jù)輸入的數(shù)據(jù),分別回答你的姓名,年齡,感興趣的工作和家庭成員,具體回答內(nèi)容由同學(xué)自己擬定。在程序中盡量采用宏指令,并注意程序設(shè)計(jì)的技巧。三、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序 STACKS SEGMENT STACK ;堆棧段 DW 128 DUP(

21、?) STACKS ENDS DATAS SEGMENT ;數(shù)據(jù)段 M01 DB 'What item do you want to know?','$' M02 DB 10,28 DUP(8),' 1. My name ','$' M03 DB 10,28 DUP(8),' 2. My age ','$' M04 DB 10,28 DUP(8),' 3. My interesting work ','$' M05 DB 10,28 DUP(8),' 4. M

22、y family ','$' M06 DB 10,28 DUP(8),'Please input the number: ','$' M07 DB 10,28 DUP(8),' Li Juan ','$' M08 DB 10,28 DUP(8),' 22 ','$' M09 DB 10,28 DUP(8),' play balls. ','$' M10 DB 10,28 DUP(8),' My parents and me. '

23、,'$' DATAS ENDS CODES SEGMENT ;代碼段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX PRT MACRO X MOV DX,OFFSET X MOV AH,9 INT 21H ENDM IPT MACRO MOV AH,1 INT 21H ENDM IFGO MACRO X,Y CMP AL,X JZ Y ENDM PRT M01 PRT M02 PRT M03 PRT M04 PRT M05 PRT M06 IPT IFGO '1',Y1

24、 IFGO '2',Y2 IFGO '3',Y3 IFGO '4',Y4 Y1: PRT M07 JMP DONE Y2: PRT M08 JMP DONE Y3: PRT M09 JMP DONE Y4: PRT M10 DONE: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START實(shí)驗(yàn)八 時(shí)鐘顯示實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、了解計(jì)算機(jī)中時(shí)鐘數(shù)據(jù)的存取方法。2、掌握時(shí)鐘顯示的編寫方法。3、進(jìn)一步掌握BIOS和DOS中子程序的調(diào)用方法。二、 實(shí)驗(yàn)內(nèi)容:在計(jì)算機(jī)屏幕的右上角顯示時(shí)鐘值,直到按下一個(gè)鍵再返回DO

25、S。三、 實(shí)驗(yàn)報(bào)告內(nèi)容:1、 實(shí)驗(yàn)用源程序:DATA SEGMENT WHOUR DB 0 ;秒表的時(shí)、分、秒、毫秒 WMIN DB 0 WSEC DB 0 WMSEC DB 0 OLD1CH DD 0 SIGNAL DB 0 COUNT DW 0;- CHOUR DB 0 ;鬧鐘的時(shí)、分、秒 CMIN DB 0 CSEC DB 0;- SPACE DB 2000 DUP (' ') PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ') DB 6 DUP (' '),

26、0BAH,26 DUP (20H),0BAH,6 DUP (' ') DB 6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ');- DBUFFER DB 8 DUP (':'),12 DUP (' ') DBUFFER1 DB 20 DUP (' ') DBUFFER2 DB 11 DUP (':'),15 DUP (' ') STR1 DB 0DH,0AH, ' INPUT ''M''

27、; TO NEXT-STATE, INPUT ''Q'' TO EXIT: $',0DH,0AH,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKS;- PUSHA1 MACRO PUSH DS PUSH AX PUSH BX PUSH CX PUSH DX ENDM POPA1 MACRO POP DX POP CX POP BX POP AX POP DS ENDM;圖形化界面設(shè)計(jì) START: MOV AX,DATA MOV DS,AX MOV ES

28、,AX MOV AX,0003H ;設(shè)置顯示方式為40*25彩色文本方式 INT 10H LEA DX,STR1 ;顯示提示信息 MOV AH,9 INT 21H MOV BP,OFFSET SPACE MOV DX,0B00H MOV CX,1000 MOV BX,0000H MOV AX,1300H INT 10H ;顯示字符串,定義顯示方式;-;主程序 LP1: MOV AH,1 ;從鍵盤輸入單個(gè)字符 INT 21H CMP AL,'M' ;AL='M'? JNE LP5 CALL DATE ;顯示系統(tǒng)日期 LP2: MOV AH,1 ;從鍵盤輸入單個(gè)字符

29、 INT 21H CMP AL,'M' ;AL='M'? JNE LP5 CALL TIME ;顯示系統(tǒng)時(shí)間 LP3: MOV AH,1 ;從鍵盤輸入單個(gè)字符 INT 21H CMP AL,'M' ;AL='M'? JNE LP4 CALL STOPWATCH ;顯示秒表 LP4: MOV AH,1 ;從鍵盤輸入單個(gè)字符 INT 21H CMP AL,'M' ;AL='M'? JNE LP5 CALL RING LP5: CMP AL,'Q' ;AL='Q'? JNE

30、 LP1 MOV AH,4CH ;返回DOS狀態(tài) INT 21H;-;顯示日期子程序 DATE PROC NEAR DISPLAY9: MOV AH,2AH ;取日期CX:DH:DL=年:月:日 AL=星期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL BCDASC1 ;日期數(shù)值轉(zhuǎn)換成相應(yīng)的ASCII碼字符 MOV AL,BL CALL BCDASC1 INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV BP,OFFSET DBUFFER1 MO

31、V DX,001DH ; L; MOV CX,20 MOV BX,004EH MOV AX,1301H INT 10H MOV AH,02H ;設(shè)置光標(biāo)位置;222 MOV DX,0900H MOV BH,0 INT 10H MOV BX,0018H REPEA: MOV CX,0FFFFH ;延時(shí) REPEAT: LOOP REPEAT DEC BX JNZ REPEA MOV AH,01H ;讀鍵盤緩沖區(qū)字符到AL寄存器 INT 16H JE DISPLAY1 JMP LP2 MOV AX,4C00H INT 21H RET DATE ENDP;-;顯示時(shí)間子程序 TIME PROC NEAR DISPLAY1: MOV SI,0 MOV BX,100 DIV BL MOV AH,2CH ;取時(shí)間CH:CL=時(shí):分 DH:DL=秒:1/100秒 INT 21H MOV AL,CH CALL BCDASC ;將時(shí)間數(shù)值轉(zhuǎn)換成ASCII碼字符 INC SI MOV AL,CL CALL BCDASC I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論