




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验1简单汇编语言程序设计一、实验目的与要求1 .熟悉汇编语言运行、调试环境及方法。2 .掌握简单汇编语言程序的设计方法。3 .熟悉调试工具DEBUG ,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用 DEBUG工具 调试程序,验证程序的正确性。1 .若X、Y、R、W 是存放8位带符号数字节单元的地址,Z是16位字单元的地址。试编写汇编程序,完成Z (W X) 5 Y) (R 2) o2 .试编写一个程序,测试某数是否是奇数。如该数是奇数,则把 DL的第0位置1,否则将该位置00三、实验报告要求1 .程序算法流程图。2 .源程序清单。3 .程
2、序运行结果。4 .调试过程中遇到的问题和解决的方法。实验2分支及循环程序设计一、实验目的与要求1 .熟悉汇编语言运行、调试环境及方法。2 .掌握分支程序和循环程序的设计方法。3 .熟悉调试工具DEBUG ,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用 DEBUG工具调 试程序,验证程序的正确性。1 .编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕 上显示。2 .从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显 示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自 己拟定)三、实验报
3、告要求1 .程序算法流程图。2 .源程序清单。3 .程序运行结果。4 .调试过程中遇到的问题和解决的方法。实验3子程序程序设计一、实验目的与要求1 .熟悉汇编语言运行、调试环境及方法。2 .掌握子程序的设计方法。3,熟悉调试工具DEBUG ,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,并利用 DEBUG工具调试程序,验证程序的正 确性。1 .编程以十进制形式和十六进制形式显示 AX的内容,并把两个显示功能分别封 装成子程序dispDEC和dispHEX。2 .设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课 的成绩,现要统计各位同学的总分,
4、并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设 计。请编程完成此功能。数据缓冲区参考数据定义如下:EXAMSCORE DB 01 ;学号DB 89,76,54,77,99 ;单科成绩DW ?;该学生的总分DB 02 ;学号DB 79,88,64,97,92 ;单科成绩DW ?;该学生的总分三、实验报告要求1 .程序算法流程图。2 .源程序清单。3 .程序运行结果。4 .调试过程中遇到的问题和解决的方法。实验4综合程序设计一、实验目的与要求1 .熟悉汇编语言运行、调试环境及方法。2 .掌握汇编语言程序的设计方法。3 .熟悉调试工具DE
5、BUG ,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,并利用 DEBUG工具调试程序,验证程序的正 确性。1.编写汇编程序接收用户从键盘键入的月份数,在终端上显示该月的英文缩写 名。当用户按下ESC键时,程序退出,返回DOS。参考程序执行过程如下:month ?5 / MAY month ?9/ SEP month ?2 .按15行X 16列的表格形式显示ASCII码为10HFFH的所有字符。每16个字符 为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。3 .在第2题程序的基础上进行修改。将显示表格的行、列数由固定的15行16列改为由用户从键盘输入
6、。然后,按用户输入的行列值进行显示。4 .编写汇编程序将内存数据区保存的若干个带符号 16位数据按从大到小的顺序 排列后,以十进制真值的形式在屏幕上显示。三、实验报告要求1 .程序算法流程图。2 .源程序清单。3 .程序运行结果。4 .调试过程中遇到的问题和解决的方法。1.1* DATA SEGMENTx DB 3y DB 1 z dw ?w db 23r db 6DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov al,w sub al,x cbw mov bl,5 idiv bl sub
7、al,y mov bl,r add bl,2 imul bl mov z,axMOV AH,4CHINT 21HCODE ENDSEND START1.2* DATA SEGMENTx db 63y db ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov al,x shr dl,1 shr al,1rcl dl,1mov y,dlMOV AH,4CHINT 21HCODE ENDSEND START2.1*DATA SEGMENTSTRING DB 'g3tRfdtf TR34
8、39;MESSAGEONE DB 'Please input the number of string(<10):$MESSAGETWO DB 'The number of string is:$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXmov ah,9mov dx,offset messageone int 21hMOV AH,1INT 21HMOV BL,ALMOV DL,10MOV AH,2INT 21HSUB BL,30HCBWMOV CX,BXMOV AL,
9、0MOV BX,OFFSET STRINGBEGIN:MOV DL,BXCMP DL,'a'JB RECMP DL,'z'JA REINC ALRE:INC BXLOOP BEGINADD AL,30Hmov bl,almov ah,9mov dx,offset messagetwo int 21hMOV DL,BLMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.2* DATA SEGMENTMAXLEN DB 32ACTLEN DB ?STRINGONE DB 32 DUPSTRINGTWO DB 32
10、DUPMESSAGEONE DB 'Please input the string(<31):$'MESSAGETWO DB 'The encryptic string is:$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AX mov ah,9 mov dx,offset messageone int 21hMOV DX,OFFSET MAXLENMOV AH,0AHINT 21HSUB CH,CHMOV CL,ACTLENADD DX,2MOV BX,DXMOV
11、 BP,OFFSET STRINGTWOMOV DL,10MOV AH,2INT 21HBEGIN:MOV DL,BXSUB DL,20H MOV BP,DLINC BXINC BPLOOP BEGINmov AL,'$'MOV BP,ALmov ah,9mov dx,offset messagetwo int 21hMOV AH,9MOV DX,OFFSET STRINGTWOINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3.1*CODE SEGMENTMAIN PROC FARASSUME CS:CODESTART:PUSH DSSUB
12、 AX,AXPUSH AXMOV AX,0101111010010101BCALL DISPDECCALLCRLFCALL DISPHEXRETMAIN ENDPDISPDEC PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSHFMOV BX,AXMOV CX,10000DCALL DEC_DIVMOV CX,1000DCALL DEC_DIVMOV CX,100DCALL DEC_DIVMOV CX,10DCALL DEC_DIV MOV CX,1D CALL DEC_DIV POPF POP DX POP CX POP BX POP AX RETDEC_DI
13、V PROC NEAR MOV AX,BX MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H RETDEC_DIV ENDP DISPDEC ENDPDISPHEX PROC NEARPUSH AX PUSH BX PUSH CX PUSH DX PUSHF MOV BX,AX MOV CH,4 MOV CL,4ROTATE:ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,7HPRINTIT:MOV DL,AL MOV AH
14、,2 INT 21HDEC CHJNZ ROTATEPOPFPOP DXPOP CXPOP BXPOP AXRET DISPHEX ENDPCRLF PROC NEAR PUSH AX PUSH DX MOV DL,0AH MOV AH,2 INT 21H POP DXPOP AX RETCRLF ENDPCODE ENDSEND START3.2*DATA SEGMENTEXAMSCORE DB 01DB 89,76,54,77,99DB 02DB 79,88,64,97,92DB 03DB 43,45,67,87,98DB 04DB 76,65,27,76,98DB 05DB 67,78,
15、23,87,87DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV CX,5MOV BX,OFFSET EXAMSCORERE:INC BXCALL SUMCALL DISPDECCALLCRLFADD BX,2LOOP RERETMAIN ENDPSUM PROC NEARPUSH CXPUSH DXPUSHFMOV AX,0MOV CX,5BEGAIN:MOV DL,BXMOV DH,0ADC AX,DXINC BXLOOP
16、BEGAINMOV BX,AXPOPFPOP DXPOP CXRETSUM ENDPDISPDEC PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSHFMOV BX,AXMOV CX,10000DCALL DEC_DIVMOV CX,1000DCALL DEC_DIVMOV CX,100DCALL DEC_DIVMOV CX,10DCALL DEC_DIVMOV CX,1DCALL DEC_DIVPOPFPOP DXPOP CXPOP BXPOP AXRETDEC_DIV PROC NEARMOV AX,BXMOV DX,0DIV CXMOV BX,DXMOV
17、DL,ALADD DL,30HMOV AH,2INT 21HRETDEC_DIV ENDPDISPDEC ENDPCRLF PROC NEARPUSH AXPUSH DXMOV DL,0AHMOV AH,2INT 21HPOP DXPOP AXRETCRLF ENDPCODE ENDSEND START实验 3 扩展 *.*data segmentstring。db 'error!$'stringl db 'input dec number:$' string2 db 'input hex number:$' string301 db '
18、output dec number(1):$ string302 db 'output dec number(2):$ X DB 5 DUPstring4 db 'output hex number:$' data ends.* ;* ;CODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA START:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXCALL KEY_DECCALL CRLFCALL DISPDECCALLCRLFCALL DISPDECZCALLCRLFCALL DISPH
19、EXCALLCRLFCALL KEY_HEXCALLCRLFCALL DISPDECCALLCRLFCALL DISPDECZCALLCRLFCALL DISPHEXRETMAIN ENDP.* ;:*;输入十进制数并用二进制存储在BX KEY_DEC PROC NEARPUSH AXPUSH CXPUSH DXPUSHFREERR:MOV DX,OFFSET STRING1MOV AH,9INT 21HMOV BX,0DEC_RE:MOV AH,1INT 21HCMP AL,0DHJE DEC_EXITSUB AL,30HJL DEC_ERRCMP AL,9JG DEC_ERRCBWXCHG
20、 AX,BXMOV CX,10MUL CXXCHG AX,BXADD BX,AXJMP DEC_REDEC_ERR:CALL ERRORJMP REERRDEC_EXIT:POPFPOP DXPOP CXPOP AXRETKEY_DEC ENDP.* ;*;输入十六进制数并用二进制存储在B>eKEY_HEX PROC NEARPUSH AXPUSH CXPUSH DXPUSHFHEX_REERR:MOV DX,OFFSET STRING2MOV AH,9INT 21HMOV BX,0 HEX_RE:MOV AH,1INT 21HCMP AL,0DHJE HEX_EXITSUB AL,30
21、HJL HEX_ERRCMP AL,0AH JL NEXT SUB AL,7 CMP AL,0AH JL HEX_ERR CMP AL,10H JL NEXT SUB AL,20H CMP AL,0AH JL HEX_ERR CMP AL,10H JNL HEX_ERR NEXT:MOV CL,4SHL BX,CLMOV AH,0ADD BX,AXJMP HEX_RE HEX_ERR:CALL ERRORJMP HEX_REERR HEX_EXIT:POPFPOP DXPOP CXPOP AX RET KEY_HEX ENDP .* ;* ;用十进制输出BX二进制的数方法DISPDEC PRO
22、C NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHFMOV DX,OFFSET STRING301 MOV AH,9 INT 21HMOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_DIV MOV CX,1D CALL DEC_DIV POPFPOP DX POP CX POP BX POP AX RET DEC_DIV PROC NEARMOV AX,BXMOV DX,0 DIV CX MOV BX,DX MOV
23、 DL,AL ADD DL,30H MOV AH,2 INT 21H RETDEC_DIV ENDP DISPDEC ENDP .* ;* ;用十进制输出BX二进制的数方法二 DISPDECZ PROC NEARPUSH AX PUSH BXPUSH CXPUSH DXPUSHFMOV DX,OFFSET STRING302MOV AH,9INT 21HMOV AX,BXmov BX,0 dispdecz_re:MOV DX,0MOV CX,10DDIV CXMOV XBX,DLINC BXcmp ax,0JNE DISPDECZ_RE dispdecz_next:CMP BX,0JE DIS
24、PDECZ_EXITDEC BXMOV DL,XBXADD DL,30HMOV AH,2INT 21HJMP DISPDECZ_NEXT DISPDECZ_EXIT:POPFPOP DXPOP CXPOP BXPOP AXRETDISPDECZ ENDP .* ;* ;用十六进制输出BX二进制数 DISPHEX PROC NEARPUSH AXPUSH CXPUSH DXPUSHFMOV DX,OFFSET STRING4MOV AH,9INT 21HMOV CH,4MOV CL,4ROTATE:ROL BX,CLMOV AL,BLAND AL,0FHADD AL,30HCMP AL,3AHJ
25、L PRINTITADD AL,7HPRINTIT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ ROTATEPOPFPOP DXPOP CXPOP AXRETDISPHEX ENDP.* ;* ;输出换行符CRLF PROC NEARPUSH AXPUSH DXMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HPOP DXPOP AXRETCRLF ENDP.* ;* ;输出错误提示ERROR PROC NEARPUSH AXPUSH DXPUSHFCALL CRLFMOV DX,OFFSET STRING0MOV AH
26、,9 INT 21HCALLCRLFPOPFPOP DXPOP AXRETERROR ENDP.* ;* ;CODE ENDSEND START4.1*DATA SEGMENTMONTH DB'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DE C'NUM DB 2 DUPSTRONE DB 'month?',10,$STRTWO DB 'month ERROR!',10,'$'DA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 忻州市静乐县2024-2025学年四年级数学第二学期期末质量检测试题含解析
- IT员工合同保密条款2025年
- 望江县2025年三年级数学第二学期期末检测试题含解析
- 个人动产抵押反担保借款合同
- 南阳市镇平县2025届四下数学期末经典模拟试题含解析
- 吉林省长春市第二实验校2025届初三第一次月考语文试题文试题含解析
- 石渠县2025年四年级数学第二学期期末质量检测试题含解析
- 企业人力资源顾问合同
- 洗涤剂产品购销合同
- 统编版二年级语文下册期末测试卷(C)(含答案)
- 舞台剧代理运营协议合同
- 西南政法大学自主招生个人陈述的风格与语气
- 广东省茂名市2025届高三下学期二模试题 历史 含解析
- 农作物高产栽培技术的试题及答案
- 宁夏回族自治区银川市一中2025届高三下学期模拟训练数学试题
- 湘豫名校联考2024-2025学年高三春季学期第二次模拟考试物理试题及答案
- 智能驾驶算法优化研究-全面剖析
- 热点主题作文写作指导:数字工具(审题指导与例文)
- 餐饮接待流程培训
- 第11章 一元一次不等式(学生版)-2023-2024学年苏科版七年级数学下册
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
评论
0/150
提交评论