微機(jī)原理-循環(huán)設(shè)計實(shí)驗(yàn)報告(共7頁)_第1頁
微機(jī)原理-循環(huán)設(shè)計實(shí)驗(yàn)報告(共7頁)_第2頁
微機(jī)原理-循環(huán)設(shè)計實(shí)驗(yàn)報告(共7頁)_第3頁
微機(jī)原理-循環(huán)設(shè)計實(shí)驗(yàn)報告(共7頁)_第4頁
微機(jī)原理-循環(huán)設(shè)計實(shí)驗(yàn)報告(共7頁)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、實(shí)驗(yàn)?zāi)康?、掌握循環(huán)程序的設(shè)計方法。2、掌握比較指令、轉(zhuǎn)移指令和循環(huán)指令的使用方法。3、進(jìn)一步掌握調(diào)試工具的使用方法。二、實(shí)驗(yàn)預(yù)習(xí)要求1、復(fù)習(xí)比較指令、條件轉(zhuǎn)移指令和循環(huán)指令。2、復(fù)習(xí)循環(huán)程序的結(jié)構(gòu)、循環(huán)控制方法等知識。3、讀懂“實(shí)驗(yàn)內(nèi)容”中給出的將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)以及將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的程序。4、根據(jù)“實(shí)驗(yàn)內(nèi)容”中給出的流程圖和程序框架編寫源程序,以便上機(jī)調(diào)試。5、從“實(shí)驗(yàn)習(xí)題”中任選一道題目,編寫源程序,以便上機(jī)調(diào)試。三、實(shí)驗(yàn)內(nèi)容計算1+2+n=?,其中n通過鍵盤輸入。要求在屏幕上提供如下信息:Please input a number(1627):;出現(xiàn)此信息后通過鍵盤輸

2、入一個小于628的無符號整數(shù)1+2+.n=sum;其中n為用戶輸入的數(shù),sum為所求的累加和程序運(yùn)行情況如下圖所示(說明:圖中所運(yùn)行程序允許累加和不大于一個32位二進(jìn)制數(shù)所能表示的范圍)。1、 編程指導(dǎo)(1) 鍵盤輸入的十進(jìn)制數(shù)如368在計算機(jī)中是以33H,36H,38H形式存放的,如何將它們轉(zhuǎn)換為一個二進(jìn)制數(shù)101110000B,以便對累加循環(huán)的循環(huán)次數(shù)進(jìn)行控制是本程序首先要解決的問題。將鍵盤輸入的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的程序清單如下:DATA SEGMENT INF1 DB "Please input a number (0-65535):$"IBUF DB 7,0,6

3、 DUP(?)DATA ENDSCODESEGMENT ASSUME CS: CODE, DS:DATASTART:MOVAX, DATA MOV DS, AXMOV DX, OFFSET INF1MOV AH, 09HINT 21HMOV DX, OFFSET IBUF;鍵入一個十進(jìn)制數(shù)(<65535)MOV AH, 0AH INT 21HMOV CL, IBUF+1;十進(jìn)制數(shù)的位數(shù)送CXMOV CH, 0MOV SI, OFFSET IBUF+2;指向輸入的第一個字符(最高位)MOV AX, 0;開始將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)AGAIN: MOVDX, 10; (0´10+a

4、4) ´10+) ´10+a0MUL DX AND BYTE PTR SI, 0FH ADD AL, SI ADC AH, 0 INC SI LOOP AGAINMOV AH,4CH INT 21HCODE ENDS END START 本程序功能:從鍵盤接收一個無符號十進(jìn)制整數(shù)(小于65535),將其轉(zhuǎn)換為二進(jìn)制數(shù),轉(zhuǎn)換結(jié)果存在AX寄存器中。(2) 累加結(jié)果為一個16位的二進(jìn)制數(shù),為了顯示結(jié)果,必需把它們轉(zhuǎn)換為十進(jìn)制數(shù)。將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的程序清單如下:DATASEGMENT OBUFDB 6 DUP(?)DATA ENDSCODE SEGMENT ASSUME C

5、S: CODE, DS: DATASTART:MOVAX, DATA MOV DS, AXMOV BX, OFFSET OBUF+5MOV BYTE PTR BX,'$'MOV CX, 10;做(DX):(AX)/10運(yùn)算LOOP1:MOVDX, 0;被除數(shù)高16位清0 DIV CXADD DL, 30H;將DL中的一位十進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼DEC BX MOV BX, DLOR AX, AXJNZ LOOP1;判斷商是否為0,不為0繼續(xù)MOV DX, BXMOV AH, 09H INT 21H;顯示轉(zhuǎn)換得到的十進(jìn)制數(shù)MOV AH, 4CH INT 21HCODE ENDS

6、 ENDSTART本程序功能:將存儲在AX寄存器中的二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)并顯示。從鍵盤輸入一個十進(jìn)制數(shù),并將其轉(zhuǎn)換為二進(jìn)制數(shù),存放在AX中開始結(jié)束素、(CX)-1=0累加循環(huán)次數(shù)送CX(MOV CX,AX)AX清0(AX中存放累加和)BX送1(BX存放每次循環(huán)累加的數(shù),每循環(huán)一次,BX值加1)ADD AX,BX INC BX累加和(在AX中)轉(zhuǎn)換為十進(jìn)制數(shù)并顯示YN2、 流程圖及程序框架(1) 流程圖(2) 程序框架DATA SEGMENT INF1 DB "Please input a number (0-65535):$"IBUFDB 7,0,6 DUP(?)OBUF

7、 DB 6 DUP (?)DATA ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATASTART:MOVAX, DATA接收從鍵盤輸入的十進(jìn)制數(shù),并將其轉(zhuǎn)換為二進(jìn)制數(shù)(存AX寄存器)的指令序列 MOV DS, AXMOV CX, AXMOV AX, 0MOV BX, 1LOOP2:ADDAX, BXINCBX將AX中存放的二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)并顯示的指令序列LOOPLOOP2CODE ENDS ENDSTART3、完整源程序代碼DATA SEGMENT INF1 DB "Please input a number(0-65535):$"

8、IBUF DB 7,0,6 DUP(?) OBUF DB 6 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET INF1 MOV AH,09H INT 21H MOV DX,OFFSET IBUF MOV AH,0AH INT 21H MOV CL,IBUF+1 MOV CH,0 MOV SI,OFFSET IBUF+2 MOV AX,0AGAIN:MOV DX,10 MUL DX AND BYTE PTRSI,0FH ADD AL,SI ADC AH,0 IN

9、C SI LOOP AGAIN MOV CX,AX MOV AX,0 MOV BX,1LOOP2:ADD AX,BX INC BX LOOP LOOP2 MOV BX,OFFSET OBUF+5 MOV BYTE PTRBX,'$' MOV CX,0AHLOOP1:MOV DX,0 DIV CX ADD DL,30H DEC BX MOV BX,DL OR AX,AX JNZ LOOP1 MOV DL,0AH MOV AH,02H INT 21H MOV DX,BX MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END START

10、實(shí)驗(yàn)截圖:四、實(shí)驗(yàn)習(xí)題1、從自然數(shù)1開始累加,直到累加和大于60000為止,顯示累加的自然數(shù)的個數(shù)和累加和。顯示格式為:1+2+n=sum其中n為累加個數(shù),sum為累加和。data segmentobufdb 6 dup(?)eudb '+','$'ebdb0dh,'=',0dh,'$'data ends display macro stringmov dx,offset stringmov ah,09hint 21h endmcode segmentmain proc farassume cs:code,ds:datastart

11、:mov ax,datamov ds,axmov ax,1mov cx,0loop1:adc cx,axcmp ax,1je allpush axdisplay eupop axall:call exchangeinc axcmp cx,60000jc loop1push axpush cxdisplay ebmov ax,cxcall exchangepop cxpop axmov ah,4chint 21hretmain endpexchange proc nearpush axpush bxpush cxmov bx,offset obuf+5mov byte ptr bx,'$

12、'mov cx,10loop2:mov dx,0div cxadd dl,30hdec bxmov bx,dlor ax,axjnz loop2mov dx,bxmov ah,09hint 21hpop cxpop bxpop axretexchange endpcode endsend start實(shí)驗(yàn)截圖:2、從鍵盤輸入6個加數(shù)N1、N2、N3、N4、N5和N6(均為14位的無符號十進(jìn)制整數(shù)),求和并將計算結(jié)果在屏幕上顯示出來。3、從鍵盤輸入一個無符號十進(jìn)制整數(shù)(小于65536),將其轉(zhuǎn)換為二進(jìn)制數(shù),統(tǒng)計該二進(jìn)制數(shù)中包含的1的個數(shù),并將統(tǒng)計結(jié)果在屏幕上顯示出來。4、從鍵盤輸入N個無符號十進(jìn)制整數(shù)(小于256),將其轉(zhuǎn)換為二進(jìn)制數(shù)后存放在字

溫馨提示

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

評論

0/150

提交評論