匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

廣西科技大學(xué)實(shí)驗(yàn)報(bào)告試驗(yàn)課程:計(jì)算機(jī)組成與匯編語言學(xué)生姓名:秦東成學(xué)號(hào):00403232專業(yè)班級(jí):計(jì)Y0965月28日《計(jì)算機(jī)組成與匯編語言》課程試驗(yàn)匯報(bào)試驗(yàn)名稱試驗(yàn)1數(shù)值轉(zhuǎn)換試驗(yàn)序號(hào)1姓名秦東成系院專業(yè)計(jì)算機(jī)工程系班級(jí)計(jì)Y096學(xué)號(hào)試驗(yàn)日期.5.28指導(dǎo)教師夏冬雪成績(jī)一、試驗(yàn)?zāi)繕?biāo)和要求1.熟悉各種進(jìn)制之間相互轉(zhuǎn)換方法。2.掌握二-十進(jìn)制數(shù)據(jù)相互轉(zhuǎn)換程序設(shè)計(jì)。3.要求列出程序源程序清單(加以注釋),匯報(bào)程序運(yùn)行結(jié)果。二、試驗(yàn)內(nèi)容1.編寫程序1:實(shí)現(xiàn)將一個(gè)16位二進(jìn)制正整數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。(可用高級(jí)語言編寫)2.編寫程序2:實(shí)現(xiàn)將一個(gè)十進(jìn)制整數(shù)(<2^16-1)轉(zhuǎn)換為16位二進(jìn)制數(shù)。(可用高級(jí)語言編寫)三、試驗(yàn)步驟1.程序1源程序清單:#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>voidmain(){ chara[17],b[16]; intsum=0; printf("pleaseinputa16bitbinarydigit:"); gets(a); intl=strlen(a); if(l>16)//輸入超出16位時(shí)輸犯錯(cuò)誤并退出 { printf("error!!don'tinputthenumberthatlongerthan16!\n"); exit(0); } for(inti=l-1;i>=0;i--)//不是二進(jìn)制數(shù)時(shí)輸犯錯(cuò)誤并退出 { if(a[i]!='1'&&a[i]!='0') { printf("error!!itisn'tabinartdigit!\n"); exit(0); } else b[i]=a[i]; } for(intj=16;j>=l;j--)//輸入小于16位時(shí)低位全補(bǔ)0 b[j]='0'; for(intk=0;k<17;k++)//將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù) sum+=(b[k]-48)*pow(2,15-k); printf("turntodecimaldigit:%d\n",sum); printf("thankyouforplaying,bye!\n");}2.程序2源程序清單:#include<stdio.h>#include<string.h>#include<stdlib.h>voidmain(){ floata,w; intb,t=15; charc[16]; printf("pleaseinputadecimaldigit:"); scanf("%f",&a); if(a>65535||a<0)//輸入大于65535或小于0或非數(shù)字時(shí)輸犯錯(cuò)誤并退出,假如輸入要轉(zhuǎn)換數(shù)字后再輸入其余字符則不處理數(shù)字后多出字符 { printf("error!!pleasedon'tinputthatnumbermorethan65535orlessthan0orisn'tanumber!\n"); exit(0); } w=a-(int)a; if(w!=0)//輸入為小數(shù)時(shí)輸犯錯(cuò)誤并退出,但小數(shù)點(diǎn)后全為0時(shí)不處理 { printf("error!!pleasedon'tinputafraction!\n"); exit(0); } for(;a>=1;)//將十進(jìn)制數(shù)轉(zhuǎn)成二進(jìn)制數(shù) { b=(int)a%2; c[t--]=b+48; a/=2; } for(inti=t;i>=0;i--)//轉(zhuǎn)出來二進(jìn)制數(shù)不滿16位時(shí)高位補(bǔ)0 { c[i]='0'; } printf("turntobinarydigit:"); for(intj=0;j<16;j++) { printf("%c",c[j]); } printf("\n"); printf("thankyouforplaying,bye!\n");}四、試驗(yàn)結(jié)果與分析1.程序1運(yùn)行結(jié)果以下。(正常運(yùn)行)(輸入不足16位時(shí))(輸入非二進(jìn)制數(shù)時(shí)報(bào)錯(cuò))(輸入超出16位時(shí)報(bào)錯(cuò))2.程序2運(yùn)行結(jié)果以下。(正常運(yùn)行)(輸入大于2^16-1時(shí)報(bào)錯(cuò))(輸入為負(fù)數(shù)時(shí)報(bào)錯(cuò))(出現(xiàn)非數(shù)字時(shí))(輸入小數(shù)時(shí))試驗(yàn)名稱試驗(yàn)5匯編語言次序結(jié)構(gòu)程序設(shè)計(jì)試驗(yàn)序號(hào)2姓名秦東成系院專業(yè)計(jì)算機(jī)工程系班級(jí)計(jì)Y096學(xué)號(hào)試驗(yàn)日期.5.28指導(dǎo)教師夏冬雪成績(jī)一、試驗(yàn)?zāi)繕?biāo)和要求1.掌握匯編語言次序結(jié)構(gòu)程序設(shè)計(jì)方法。2.熟悉慣用匯編指令使用方法。3.學(xué)會(huì)用debug輸入、運(yùn)行小程序,并檢驗(yàn)運(yùn)行情況方法。4.學(xué)會(huì)在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行80x86匯編語言程序過程。5.要求列出調(diào)試程序2源程序清單并加以注釋,說明該程序功效。6.要求說出調(diào)試程序3犯錯(cuò)處,列出調(diào)試程序3經(jīng)修改運(yùn)行正確后源程序清單及運(yùn)行結(jié)果。7.要求列出編寫程序1源程序(加以注釋),統(tǒng)計(jì)程序運(yùn)行結(jié)果。二、試驗(yàn)內(nèi)容1.調(diào)試程序2.2.編寫程序1,實(shí)現(xiàn)W=(3X+6Y)*4-8Z,設(shè)X=5,Y=3,Z=19。三、試驗(yàn)步驟1.調(diào)試程序2源程序清單以下。DATASEGMENT X DB 20H Y DW ? DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,X XOR AH,AH;AH清零 SHL AX,1;實(shí)現(xiàn)2X MOV BX,AX;暫存2X到BX MOV CL,2 SHL AX,CL;2X*4=8X ADD AX,BX;8X+2X=10X MOV Y,AX MOV AH,4CH INT 21HCODE ENDS END START2.源程序清單以下。DATA SEGMENT X DW 5 Y DW 3 Z DW 19 W DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X MOV CX,3 MUL CX;實(shí)現(xiàn)3X MOV BX,AX MOV AX,Y MOV CX,6;實(shí)現(xiàn)6Y MUL CX ADD AX,BX;實(shí)現(xiàn)3X+6Y MOV CX,4 MUL CX;實(shí)現(xiàn)(3X+6Y)*4 MOV BX,AX MOV AX,Z MOV CX,8 MUL CX;實(shí)現(xiàn)8Z NEG AX;對(duì)8Z取補(bǔ)得到-8Z ADD AX,BX;實(shí)現(xiàn)(3X+6Y)*4-8Z MOV W,AX MOV AH,4CH INT 21HCODE ENDS END START四、試驗(yàn)結(jié)果與分析1.調(diào)試程序1實(shí)現(xiàn)功效是Y=10X。2.編寫程序1運(yùn)行結(jié)果以下。結(jié)果為負(fù)數(shù),用補(bǔ)碼表示。試驗(yàn)名稱試驗(yàn)6匯編語言分支結(jié)構(gòu)程序設(shè)計(jì)試驗(yàn)序號(hào)2姓名秦東成系院專業(yè)計(jì)算機(jī)工程系班級(jí)計(jì)Y096學(xué)號(hào)試驗(yàn)日期.5.28指導(dǎo)教師夏冬雪成績(jī)一、試驗(yàn)?zāi)繕?biāo)和要求1.掌握分支結(jié)構(gòu)程序特點(diǎn)。2.掌握分支結(jié)構(gòu)程序設(shè)計(jì),調(diào)試方法。3.熟悉匯編語言程序匯編、連接及調(diào)試技術(shù)。4.要求說明調(diào)試程序1運(yùn)行結(jié)果。5.要求列出編寫程序1、2源程序(加以注釋),統(tǒng)計(jì)程序調(diào)試過程及運(yùn)行結(jié)果。二、試驗(yàn)內(nèi)容1.調(diào)試程序1:求無符號(hào)字節(jié)變量X,Y之差絕對(duì)值,存放于字節(jié)變量A中。上機(jī)運(yùn)行該程序并檢驗(yàn)運(yùn)行結(jié)果是否正確。2.編寫程序1:編程實(shí)現(xiàn)從鍵盤輸入一位數(shù)字,判斷其奇偶性,并在屏幕上輸出一個(gè)標(biāo)志,若為奇數(shù),則輸出1,不然輸出0.3.編寫程序2:編程實(shí)現(xiàn)任意給定X值(-128~127),求符號(hào)函數(shù)Y值,存于內(nèi)存單元。當(dāng)X>0時(shí),Y=5X-3;當(dāng)X=0時(shí),Y=0;當(dāng)X<0時(shí),Y=2X。三、試驗(yàn)步驟1.調(diào)試程序1源程序以下。DATA SEGMENT X DB 23 Y DB 45 A DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,X MOV BL,Y CMP AL,BL JAE BIG SUB BL,AL MOV A,BL JMP EXITBIG: SUB AL,BL MOV A,ALEXIT: MOV AX,4C00H INT 21HCODE ENDS END START2.編寫程序1源程序清單以下。DATA SEGMENT INPUT DB 'PLEASEINPUTANUMBER:$' INPUT1 DB '$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET INPUT MOV AH,9 INT 21H;顯示字符串PLEASEINPUTANUMBER: MOV AH,1 INT 21H;從鍵盤上輸入一個(gè)字符 AND AL,0FH SUB AH,30H;將ASCII碼轉(zhuǎn)換成真值 MOV AH,0 MOV BL,2 DIV BL CMP AH,0;將輸入數(shù)對(duì)2求余并與0比較 JZ OUT0;等于0則轉(zhuǎn)到OUT0 JMP OUT1;不然轉(zhuǎn)到OUT1OUT0:;輸出一串空格后輸出0 MOV DX,OFFSET INPUT1 MOV AH,9 INT 21H MOV DL,30H MOV AH,2H INT 21H JMP EXITOUT1:;輸出一串空格后輸出1 MOV DX,OFFSET INPUT1 MOV AH,9 INT 21H MOV DL,31H MOV AH,2H INT 21HEXIT: MOV AX,4C00H INT 21HCODE ENDS END START3.編寫程序2源程序清單以下。DATASEGMENT X DW 10 Y DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX CMP X,0;X與0比較 JG NEXT;X大于0則轉(zhuǎn)到NEXT JZ NEXT1;X等于0則轉(zhuǎn)到NEXT1 JL NEXT2,X小于0則轉(zhuǎn)到NEXT2 NEXT: MOV AX,X MOV BX,5 MUL BX SUB AX,3;實(shí)現(xiàn)5X-3 JMP EXITNEXT1: MOV AX,0 JMP EXITNEXT2: MOV AX,X MOV BX,2;實(shí)現(xiàn)2X MUL BXEXIT: MOV Y,AX;將算出來值傳給Y MOV AX,4C00H INT 21HCODE ENDS END START四、試驗(yàn)結(jié)果與分析1.調(diào)試程序1運(yùn)行結(jié)果以下。經(jīng)過結(jié)果說明程序運(yùn)行結(jié)果正確。2.編寫程序1運(yùn)行結(jié)果以下。3.編寫程序2運(yùn)行結(jié)果以下。試驗(yàn)名稱試驗(yàn)7匯編語言循環(huán)結(jié)構(gòu)程序設(shè)計(jì)試驗(yàn)序號(hào)2姓名秦東成系院專業(yè)計(jì)算機(jī)工程系班級(jí)計(jì)Y096學(xué)號(hào)試驗(yàn)日期.5.28指導(dǎo)教師夏冬雪成績(jī)一、試驗(yàn)?zāi)繕?biāo)和要求1.加深對(duì)循環(huán)結(jié)構(gòu)了解。2.掌握循環(huán)程序設(shè)計(jì)方法。3.深入熟悉匯編語言程序匯編、連接及調(diào)試技術(shù)。4.要求說明調(diào)試程序1運(yùn)行結(jié)果。5.要求說明調(diào)試程序2功效及運(yùn)行結(jié)果。6.要求列出編寫程序1、3源程序(加以注釋),統(tǒng)計(jì)程序調(diào)試過程及運(yùn)行結(jié)果。二、試驗(yàn)內(nèi)容1.調(diào)試程序1:統(tǒng)計(jì)字符變量X中1個(gè)數(shù),存放與字節(jié)變量Y中。2.調(diào)試程序2。3.編寫程序1:編程計(jì)算從1到100和。三、試驗(yàn)步驟1.調(diào)試程序1源程序以下。DATA SEGMENT X DW 63H Y DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE;DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,X MOV BL,0 MOV CX,16AGAIN: ROL AX,1 JNC NEXT INC BLNEXT: LOOP AGAIN MOV Y,BLEXIT: MOV AX,4C00H INT 21HCODE ENDS END START2.調(diào)試程序2源程序以下。DATA SEGMENT ARRAY DB 34,56,0,58,79,0,0,28,98H COUNT EQU $-ARRAYDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,COUNT MOV BX,-1AGAIN:INC BX CMP ARRAY[BX],0 LOOPNZ AGAIN JZ OK MOV DL,'N' JMP SHOWOK: MOV DL, BL OR DL,30H CMP DL,30H JBE SHOW ADD DL,7SHOW: MOV AH,2 INT 21HEXIT: MOV AX,4C00H INT 21HCODE ENDS END START3.編寫程序1源程序清單以下。DATA SEGMENT X DW 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,100 MOV BX,0BEGIN: INC BX ADD X,BX LOOP BEGIN MOV AH,4CH INT21HCODE ENDS ENDSTART四、試驗(yàn)結(jié)果與分析1.調(diào)試程序1運(yùn)行結(jié)果以下。說明運(yùn)行結(jié)果正確。2.調(diào)試程序2運(yùn)行結(jié)果以下。說明程序?qū)崿F(xiàn)功效是查找0第一次出現(xiàn)位置。3.編寫程序1運(yùn)行結(jié)果以下。運(yùn)行正確。試驗(yàn)名稱試驗(yàn)8匯編語言子程序設(shè)計(jì)試驗(yàn)序號(hào)3姓名秦東成系院專業(yè)計(jì)算機(jī)工程系班級(jí)計(jì)Y096學(xué)號(hào)試驗(yàn)日期.5.28指導(dǎo)教師夏冬雪成績(jī)一、試驗(yàn)?zāi)繕?biāo)和要求1.學(xué)習(xí)子程序定義和調(diào)用方法,加深對(duì)子程序了解。2.掌握子程序設(shè)計(jì)、編寫及調(diào)用方法。3.掌握子程序、嵌套子程序、遞歸子程序了解。二、試驗(yàn)內(nèi)容1.調(diào)試程序1:上機(jī)運(yùn)行該程序并檢驗(yàn)運(yùn)行結(jié)果是否正確。三、試驗(yàn)步驟1.調(diào)試程序1程序以下。DSEG SEGMENT TABLE DB 255 DUP(?) N DW 255 CHAR DB ? CRLF DB 0DH,0AH,'$'DSEG ENDSSTACK SEGMENT DW 100DUP(?)STACK ENDSCSEG SEGMENTMAIN PROC FAR ASSUME CS:CSEG,DS:DSEG,SS:STACKSTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DSEGMOV DS,AXBEGIN: MOV BX,0MOV CX,255INPUT: MOV AH,1 INT 21H CMP AL,0DH JZ IN_N MOV TABLE[BX],AL INC BX LOOP INPUTIN_N: MOV N,BX CALL DISP_CRLFIN_CHAR:MOV AH,1 INT 21H CMP AL,0DH JZ EXIT MOV CHAR,AL MOV DL,':' MOV AH,2 INT 21H MOV AL,CHAR MOV CX,N LEA BX,TABLE CALL SEARCH AND DL,0FH ADD DL,30H CMP DL,39H JBE NEXT1 ADD DL,07HNEXT1: MOV AH,2 INT 21H CALL DISP_CRLF JMP SHORTIN_CHAR;此處犯錯(cuò)EXIT: RETMAIN ENDPSEARCH PROC NEAR MOV DL,0ROTATE: CMP AL,[BX] JNZ NEXT2 INC DL NEXT2: INC BX LOOP ROTATE RETSEARCH ENDPDISP_CRLFPROC NEAR LEA DX,CRLF MOV AH,09H INT 21H RETDISP_CRLFENDPCSEG ENDS END START四、試驗(yàn)結(jié)果與分析1.調(diào)試程序1運(yùn)行有錯(cuò),應(yīng)該把JMP SHORTIN_C

溫馨提示

  • 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. 人人文庫(kù)網(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)論