版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
00微机原理及程序设计试验指导书班级:姓名:学号:完成日期:10微机原理试验试验要求及运行环境交打印版试验报告,试验要求:提前预习,标好程序注释,修改好程序;
10分实 验
个人按要求独立完成,填好试验结果,按时交试验报告〔如玩玩耍、谈天、打、听音乐等〕不得缺席,试验签名,不代他人签名
20分10分10分成 绩 百
带走自己的垃圾,保持试验室卫生,电脑设备桌椅摆设整齐,保管好个人5分物品分 总
疼惜设备,保证设备完好试验结果,试验中经教师检查过
5分10分分100分〕试验〔30
报告按统一格式要求填写,包括:课程名称、姓名、学号、班级任课老5分师等试验报告包括试验目的、试验内容、程序框图、程序清单、试验要求5分分〕读懂程序加注释〔105〔手写程序修改,试验要求的完成及结果
15分5分ASMASMMasmforwindows2023翻开ASMMasMforwindows ,输入试验程序代码,调试、改错、保存、运行、查看结果,进展记录。运行结果显示:试验一 两个多位十进制数相加的试验一、试验目的1、学习数据传送和算术运算指令的用法。2、生疏在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。二、试验内容将两个多位十进制数相加。要求被加数均以 ASCII码形式各自挨次存放在以DATA1DATA25个内存单元中〔低位在前〕,结果送回DATA1处。三、程序框图显示被加数和加数显示被加数和加数被加数和加数以ASCII码表示的数字串形式转化为由十六进制表示的数字串形式5→CX去除最低位进位执行ADC带进位相加AAA调整结果送被加数区调整偏移量NCX-1=0?Y十六进制的结果转化为ASCII码表示的数字串显示结果完毕四、程序清单CRLF MACRO ;宏定义,宏名:CRLFMOVDL,0DH0DHDLMOVAH,02H;02HAHINT21H;系统功能调用——实现回车功能MOVDL,0AH0AHDLMOVAH,02H;02HAHINT21H;系统功能调用——实现换行功能ENDM ;宏定义完毕——本段实现回车换行功能DATA SEGMENT;数据段定义,段名DATADATA1 DB33H,39H,31H,37H,34H(,3);变量DATA1中装入加数DATA2 DB36H,35H,30H,38H,32H;变量DATA2中装入被加数DATA ENDS;数据段定义完毕——本段实现了两个数据的定义STACK SEGMENTSTA DB 20DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSETDATA2MOV BX,05 ;06CALL DISPLCRLFMOV SI,OFFSETDATA1MOV BX,05 ;06CALL DISPLCRLFMOV DI,OFFSETDATA2CALL ADDAMOV SI,OFFSETDATA1MOV BX,05 ;06|CALL DISPLCRLFMOV AX,4C00HINT 21HDISPL PROC NEARDS1:MOVAH,02MOVDL,[SI+BX-1]INT21HDECBX ;BX-1JNZDS1 ;相等则转移RETDISPLENDPADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05 ;06|07AD1:SUBBYTE PTR[SI+BX-1],30HSUBBYTE PTR[DI+BX-1],30HDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,05 ;06AD2:CLCMOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSIINCDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,05AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART五、试验要求读懂源程序,写出源程序注释。把源程序修改为任意两个六位十进制相加。并思考假设最高位有进位怎么办?这是修改后的程序:CRLF MACRO;宏定义,宏名:CRLFMOVDL,0DH;把0DH给DLMOVAH,02H02H给AHINT21H;系统功能调用——实现回车功能MOVDL,0AH;把0AH给DLMOVAH,02H02H给AHINT21H;系统功能调用——实现换行功能ENDM 完毕——本段实现回车换行功能DATA SEGMENT;数据段定义,段名DATADATA1 DB35H,39H,36H,37H,34H,37H;变量DATA1中装入加数DATA2 DB36H,35H,31H,38H,32H,35H;变量DATA2中装入被加数STATOPSTACKCODEASSUMEDBSTATOPSTACKCODEASSUMEDBEQUENDSSEGMENT20DUP(?)LENGTHSTACS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA2MOVBX,06CALLDISPLCRLFMOVSI,OFFSETDATA1MOVBX,06CALLDISPLCRLFMOVDI,OFFSETDATA2CALLADDAMOVSI,OFFSETDATA1MOVBX,07CALLDISPLCRLFMOVAX,4C00HINT21HDISPLPROCNEARDS1:MOVAH,02MOV DL,[SI+BX-1]INT 21HDEC BX ;BX-1JNZDS1JNZDS1RETDISPLENDPADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,07;06AD1:SUBBYTE PTR[SI+BX-1],30HSUBBYTE PTR[DI+BX-1],30HDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,06;06CLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSIINCDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,07AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],2bHDECBXJNZAD3RETADDAENDPCODEENDSENDSTART试验二 两个数相乘的试验一、试验目的把握乘法指令和循环指令的用法。二、试验内容实现十进制数的乘法。被乘数和乘数均以ASCII码形式存放在内存中,乘积在屏幕上显示出来。三、程序框图乘数→乘数→BLBL中数由ASCII码转化为十六进制SI指向被乘数5→CX取被乘数[SI]单元与BL相乘AAM调整结果低位与前次计算的进位[DI]相加AAA调整结果→[DI]DI+1指向下一单元本次计算的进位→[DI]NCX-1=0?Y显示结果完毕四、程序清单修改前修改后DATASEGMENTDATASEGMENTDATA1DB 32H,39H,30H,35H,34HDATA1 DB32H,39H,30H,35H,34H,36HDATA2DB 33HDATA2DB 33H,35HRESULTDB 6 DUP(00H)RESULTDB 16DUP(00H)DATAENDSDATAENDSSTACKSEGMENTSTACKSEGMENTSTADB 20DUP(?)STADB 20DUP(?)TOPEQU LENGTHSTATOPEQULENGTHSTASTACKENDSSTACKENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA
CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATASTART:MOVAX,DATAMOVDS,AXMOVDS,AXMOVAX,STACKMOVAX,STACKMOVSS,AXMOVSS,AXMOVAX,TOPMOVAX,TOPMOVSP,AXMOVSP,AXMOVSI,OFFSET DATA2MOVSI,OFFSET DATA2MOVBL,[SI]MOVBL,[SI];个位ANDBL,00001111BANDBL,00001111BMOV SI,OFFSET DATA1MOV DI,OFFEST RESULT
MOV DL,[SI+1];十位AND DL,00001111BMOVCX,05MOVSI,OFFSETDATA1LOOP1:MOVAL,[SI]MOVDI,OFFSETANDAL,00001111BRESULTINCSIMOVCX,06MULBLLOOP1:MOVAL,[SI]AAMANDAL,00001111BADDAL,[DI]INCSIAAAMULBLMOV[DI],ALAAMINCDIADDAL,[DI]MOV[DI],AHAAALOOPLOOP1MOV[DI],ALMOV CX,06MOV SI,OFFSET RESULTINCMOVDI[DI],AHDISPL:MOVAH,02LOOPLOOP1MOVDL,[SI+5]MOVSI,OFFSETDATA1ADDDL,30HMOVDI,OFFSETINT21HRESULTDECSIMOVCX,06LOOPDISPLLOOP2:MOVAL,[SI]MOVAX,4C00HANDAL,00001111BINT21HINCSICODEENDSMULDLENDSTARTAAMADDAL,[DI+8]AAAMOV[DI+8],ALINCDIMOV[DI+8],AHLOOPLOOP2CLCMOVDI,OFFSETRESULTMOVCX,07ADDA:MOVAL,[DI+1];两个数相加MOVBL,[DI+8]ADCAL,BLAAAMOV[DI+1],ALINCDILOOPADDAMOVCX,08MOVSI,OFFSETRESULTDISPL:MOVAH,02MOVDL,[SI+7]ADDDL,30HINT21HDECSILOOPDISPLMOVAX,4C00HINT21HCODEENDSENDSTART五、试验要求读懂程序,写出程序注释。修改程序,62位数的功能。试验三 BCD码相乘的试验一、试验目的把握用组合的BCD码表示数据,并生疏怎样实现组合BCD码乘法运算。二、试验内容实现BCD码的乘法,要求被乘数和乘数均以组合的BCD码形式存放,各占一个内存单元,乘积存放在另外两个内存单元中。由于没有组合BCD码乘法指令,1作为计数器,累加另一个乘数的方法得到计算结果。三、程序框图121→计数器BL中局部积DX0YBL=0?N0显示结果2与局部积低位相加完毕DAA调整结果→DL局部积高位进展进位位调整DAA调整1112结果→结果→DH计数器BL1DAS调整,并将结果送BL四、程序清单修改前DISPL MACROADD DL,30HMOV AH,02INT 21HENDMCRLF MACROMOV DL,0DHMOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HENDMDATA SEGMENT
修改后DISPL MACROADD DL,30HMOV AH,02INT 21HENDMCRLF MACROMOV DL,0DHMOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HENDMDATA SEGMENTDATA1 DB 01001000B DATA1 DB 01001000BDATA2 DB 01110101B DATA2 DB 01110101BRESULT DW ?DATA ENDSSTACK SEGMENT STACKSTA DB 20DUP(?)TOP EQU LENGTHSTASTACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DTA
RESULT DW ?DATA ENDSSTACK SEGMENT STACKSTA DB 20DUP(?)TOP EQU LENGTHSTASTACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DTASTART:MOVAX,DATASTART:MOVAX,DATAMOVDS,AXMOVDS,AXMOVAX,STACKMOVAX,STACKMOVSS,AXMOVSS,AXMOVAX,TOPMOVAX,TOPMOVSP,AXMOVSP,AXMOVDI,OFFSETMOVDI,OFFSETRESULTRESULTMOVI,OFFSET DATA1MOVSI,OFFSETMOVAH,[SI]DATA1MOVCL,04MOVAH,[SI]SHRAH,CLMOVCL,04MOVDL,AHSHRAH,CLDISPLMOVDL,AHMOVAL,[SI];DISPLMOVBL,ALMOVAL,[SI]ANDAL,00001111BMOVBL,ALMOVDL,ALANDAL,00001111BDISPLMOVDL,ALCRLF;DISPLMOVSI,OFFSETCRLFDATA2MOVSI,OFFSETMOVAH,[SI]DATA2MOVCL,04MOVAH,[SI]SHRAH,CLMOVCL,04MOVDL,AHSHRAH,CLDISPLMOVDL,AHMOVAL,[SI];DISPLANDAL,00001111BMOVAL,[SI]MOVDL,ALANDAL,00001111BDISPLMOVDL,ALCRLF;DISPLXORDX,DXCRLFS1:CMPBL,0XORDX,DXJZS2S1:CMPBL,0CLCJZS2MOVAL,[SI]CLCADCAL,DLMOVAL,[SI]DAAADCAL,DLMOVDL,ALDAAMOVAL,00HMOVDL,ALADCAL,DHMOVAL,00HDAAADCAL,DHMOVDH,ALDAAMOVAL,BLMOVDH,ALDECALMOVAL,BLDASDECALMOVBL,ALDASJMPS1MOVBL,ALS2:MOV[RESULT],DXJMPS1MOVSI,DXS2:MOV[RESULT],DXMOVCL,4MOVSI,DXSHRDH,CLMOVCL,4MOVDL,DHSHRDH,CLDISPLMOVDL,DHMOVDX,SIDISPLANDDH,00001111BMOVDX,SIMOVDL,DHANDDH,00001111BDISPLMOVDL,DHMOVDX,SIDISPLMOVCL,4MOVDX,SISHRDL,CLMOVCL,4DISPLSHRDL,CLMOVDX,SIDISPLANDDL,00001111BMOVDX,SIDISPLANDDL,00001111BCRLFDISPLS3:MOVAX,4C00HCRLFINT21HS3:MOVAX,4C00HCODEENDSINT21HENDSTARTCODEENDSENDSTART五、试验要求读懂源程序,写出程序注释。修改程序使其不显示被乘数和乘数。试验四 字符匹配程序一、试验目的把握提示信息的使用方法及键盘输入信息的用法。二、试验内容编写程序,实现两个字符串比较。假设两个字符串中有一个字符一样,显示“MATCH”,NOMATC三、程序框图段存放器及堆栈初始化段存放器及堆栈初始化1”INT21H0A号子功能,接收键入的字符串2”SI1的首字符SI2Y相等?NSI+11N1中的字符已取完?Y显示“NOMATCH”显示“MATCH”返回DOS四、程序清单修改前修改后CRLFMACROCRLFMACROMOVAH,02HMOVAH,02HMOVDL,0DHMOVDL,0DHINT21HINT21HMOVAH,02HMOVAH,02HMOVDL,0AHMOVDL,0AHINT21HINT21HENDMENDMDATA SEGMENTMESS1 DB ”MATCH”,0DH,0AH,”$”MESS2 DB ”NOMATCH”,0DH,0AH,”$”MESS3 DB ”INPUTSTRING1:”,0DH,0AH,”$”MAXLEN1DB 81STRING2:”,0DH,0AH,”$”ACTLEN1MAXLEN1DB 81STRING2:”,0DH,0AH,”$”ACTLEN1DB ?MAXLEN1 DB81STRING1DB 81DUP(?)ACTLEN1 DB?MAXLEN2DB 81STRING1 DB81DUP(?)ACTLEN2DB ?MAXLEN2 DB81STRING2DB 81DUP(?)ACTLEN2 DB?DATAENDSSTRING2 DB81DUP(?)STACKSEGMENT STACKDATA ENDSSTADB 50DUP(?)STACK SEGMENTSTACKTOPEQULENGTHSTASTADB50DUP(?)STACKENDSTOPEQULENGTH STA
DATA SEGMENTMESS1DB”MATCH”,0DH,0AH,”$”MESS2 DB ”NOMATCH”,0DH,0AH,”$”MESS3 DB STRING1:”,0DH,0AH,”$”MESS4 DB ”INPUTCODE SEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AH,09HMOV DX,OFFSET MESS3INT 21H
STACK ENDSCODE ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AH,09HMOV AH,0AH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年杭州学军中学德清学校(筹建)招聘教师备考题库及答案详解(夺冠系列)
- 护理伦理与医疗安全管理
- 2025年北京市朝阳区三环肿瘤医院招聘21人备考题库有完整答案详解
- 毛巾布检验岗位责任制度
- 施工现场防控责任制度
- 殡仪馆岗位责任制度范本
- 售票处安全生产责任制度
- 部门经理连带责任制度
- 装修油漆工岗位责任制度
- 离子色谱仪安全责任制度
- 2026年江苏农林职业技术学院单招职业适应性测试必刷测试卷新版
- 2025年重庆选调生申论真题参考答案
- 滴灌带生产流程
- 矿山交易中介合同范本
- 2026年湖南汽车工程职业学院单招职业技能考试必刷测试卷及答案1套
- 电信业务推广协议书6篇
- 雅马哈DTX430K电子鼓中文说明书
- 小学五年级音乐期末考核方案
- 数据资产目录建设方案
- 2025年云南省事业单位考试真题
- 脊柱损伤病人护理
评论
0/150
提交评论