




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上一、系统认识实验1.1 实验目的掌握QASM轻松汇编(TD系列微机原理及接口技术教学实验系统)的操作,熟悉QASM(Wmd86联机集成开发调试软件)的操作环境。学习和掌握程序编写,汇编,调试的方法和技术。1.2 实验设备PC机一台,(TD-PITE实验装置或TD-PITC实验装置一套)。1.3 实验内容编写实验程序,将00H0FH共16个数写入内存03000H开始的连续16个存储单元中。1.4 实验步骤1. 进入QASM编程环境:将TDASM和ASMPRO文件夹复制到D盘根目录上,运行TDASM下的QASM,进入集成开发环境。2.输入汇编源程序:编写输入实验程序,如图
2、所示,并保存为A1,此时系统会提示输入新的文件名,输完后点击保存。可以用打开文件方式将以前保存的源程序调入。 程序编辑界面3. 程序的汇编与连接:点击,编译文件,若程序编译无误,则可以继续点击进行链接,链接无误后方运行调试程序。编译输出信息界面4 观察程序及变量分配:点击“交叉文件”,观察源程序代码与机器代码与存储形式。点击“汇编程序”返回汇编程序窗口。操作练习:1、对上述程序进行观察。看汇编源程序的指令与机器码指令的对应关系及程序存放形式。2、打开程序EX1,观察变量定义及存放关系。3、打开EX32,观察变量定义及内存分配。5集成调试环境的使用:单步执行:点击“调试”菜单下的“单步”,可以一
3、条一条的执行指令。查看修改寄存器:在调试过程中,可能通过调试窗口的“调试”选单,观察和修改CPU中寄存器的内容。查看变量和存储单元内容:在调试过程中,可能通过调试窗口的“查看”选单,可以添加要查看的存储单元或者变量的的内容。断点设置:在程序的对应指令行点击行号,可以设置程序断点(出现红色园点)。或者取消断点。连续运行:点击调试菜单下的“GO”,或让程序连续运行到断点处停止。操作练习:1、打开程序EX1,单步运行程序,观察寄存器及存储单元变化。并记录。3、打开EX32,观察变量定义及内存分配。单步运行程序,观察寄存器及存储单元变化。并记录。6TRUBODEBUGGER的使用:(详细说明见TRUB
4、ODEBUGGER一览表)进入TD:汇编连接完成后,点击“调试”菜单下的“TD。”可进入TRUBODEBUGGER调试环境。单步执行:点击“STEP”,可以一条一条的执行指令。查看修改寄存器:点击“VIEW”菜单下的“REGISTER”选单,可以观察和修改CPU中寄存器的内容。查看和修改变量单元内容:点击“VIEW”菜单下的“VARIABLE”选单,可以观察和修改变量单元的内容。查看和修改存储单元内容:点击“VIEW”菜单下的“DUMP”选单,可以观察和修改存储单元的内容。断点设置:在程序的对应指令行点击,再点击“BKPT”,可以在该得设置断点。连续运行:点击 “RUN”,让程序连续运行到断点
5、处停止。操作练习:1、打开程序A1,单步和设置断点运行程序,观察寄存器及存储单元变化。程序观察程序运行前后 0000:3000开始的十六个字节单元的数据。2、打开EX1,单步和设置断点运行程序,输入不同数,运行后检查变量X和XXX的值,并记录。3、编写程序,将内存0000:3500H单元开始的8个数据复制到0000:3600H单元开始的数据区中。通过调试验证程序功能。使用TD调试程序,先将0000:3500H单元写入8个数,然后运行程序,观察程序是否将数据复制到0000:3600H单元中。二、数制转换实验计算机与外设间的数制转换关系如图2-1所示,数制对应关系如表2-1所示。图2-1 数制转换
6、关系1操作练习:1、打开程序A1,单步和设置断点运行程序,观察寄存器及存储单元变化。程序观察程序运行前后 0000:3000开始的十六个字节单元的数据。2、打开EX1,单步和设置断点运行程序,输入不同数,运行后检查变量X和XXX的值,并记录。3、编写程序,将内存0000:3500H单元开始的8个数据复制到0000:3600H单元开始的数据区中。通过调试验证程序功能。使用TD调试程序,先将0000:3500H单元写入8个数,然后运行程序,观察程序是否将数据复制到0000:3600H单元中。2. 将ASCII码表示的十进制数转换为二进制数十进制表示为: (1)Di代表十进制数0,1,2,9;上式转
7、换为: (2)由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。表2-1 数制对应关系表十六进制BCD码二进制机器码ASCII码七段码共阳共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08
8、H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H程序流程图如图2-2所示。实验参考程序如下。实验程序清单(例程文件名:A2-1.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSDATASEGMENTSADDDB 30H,30H,32H,35H,36H ;十进制数:00256DATAENDSCODESEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXMOV AX, OFFSET SADDMOV
9、 SI, AXMOV BX, 000AHMOV CX, 0004HMOV AH, 00HMOV AL, SISUB AL, 30HA1:IMUL BXMOV DX, SI+01图2-2 转换程序流程图AND DX, 00FFH ADC AX, DXSUB AX, 30HINC SILOOP A1A2:JMP A2CODE ENDS END START实验步骤(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统。(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H。(3)在A2处设置断点,然后运行程序。(4)到断点后查看AX寄存器,即为转换结果,
10、应为:0100 。(5)数据区的数据修改为自己学号的后四位数据(如:03526),按照上面步骤运行程序,记录结果。(6)修改数据区数据,按照上面步骤运行程序,验证程序的正确性,记录结果。4. 将十进制数的ASCII码转换为BCD码从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表2-1可知,一字节ASCII码取其低四位即变为BCD码。实验程序清单(例程文件名:A2-2.ASM)SSTACKSEGMENT STACK DW 64 DUP(
11、?)SSTACKENDS CODESEGMENTASSUME CS:CODESTART:XORAX,AXMOVDS,AXMOV CX, 0005H;转换位数MOV DI, 3500H;ASCII码首地址A1:MOV BL, 0FFH;将错误标志存入BLMOV AL, DICMP AL, 3AH JNB A2;不低于3AH则转A2SUB AL, 30HJB A2;低于30H则转A2MOV BL, ALA2:MOV AL, BL;结果或错误标志送入ALMOV DI+0AH,AL;结果存入目标地址INC DILOOP A1MOV AX,4C00HINT 21H;程序终止CODEENDSEND STA
12、RT实验步骤(1)自己绘制程序流程图,然后编写程序,编译、链接无误后装入系统。(2)在0000:3500H0000:3504H单元中存放五位十进制数的ASCII码,即: 31,32,33,34,35。(3)在MOV AX,4C00H指令处设置断点,运行程序到断点。(4)0000:350AH单元,显示运行结果,应为: 0000:350A 01 02 03 04 05 CC (5)反复测试几组数据,验证程序功能。5. 将十六位二进制数转换为ASCII码表示的十进制数十六位二进制数的值域为065535,最大可转换为五位十进制数。五位十进制数可表示为:Di:表示十进制数09将十六位二进制数转换为五位A
13、SCII码表示的十进制数,就是求D1D4,并将它们转换为ASCII码。自行绘制程序流程图,编写程序可参考例程。例程中源数存放于3500H、3501H中,转换结果存放于3510H3514H单元中。实验程序清单(例程文件名:A2-3.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV SI,3500H;源数据地址MOV DX,SIMOV SI,3515H;目标数据地址A1:DEC SIMOV AX,DXMOV DX,0000HMOV CX,000AH;除数10DIV CX;得商送AX, 得余
14、数送DXXCHG AX,DXADD AL,30H;得Di的ASCII码MOV SI,AL;存入目标地址CMP DX,0000HJNE A1;判断转换结束否,未结束则转A1A2:CMP SI,3510H;与目标地址得首地址比较JZ A3;等于首地址则转A3,否则将剩余地址中填30HDEC SIMOV AL,30HMOV SI,ALJMP A2A3: MOV AX,4C00HINT 21H;程序终止CODE ENDSEND START实验步骤(1)编写程序,经编译、链接无误后,装入系统。(2)在3500H、3501H中存入0C 00。(3)运行程序,待程序运行停止。(4)检查运行结果,键入D351
15、0,结果应为:30 30 30 31 32。(5)可反复测试几组数据,验证程序的正确性。6. 十六进制数转换为ASCII码由表2.1中十六进制数与ASCII码的对应关系可知:将十六进制数0H09H加上30H后得到相应的ASCII码,AHFH加上37H可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。自行绘制流程图。实验程序清单(例程文件名为A2-4.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:
16、MOV CX,0004HMOV DI,3500H;十六进制数源地址MOV DX,DIA1:MOV AX,DXAND AX,000FH;取低4位CMP AL,0AHJB A2;小于0AH则转A2ADD AL,07H;在AFH之间,需多加上7HA2:ADD AL,30H;转换为相应ASCII码MOV DI+0DH,AL;结果存入目标地址DEC DIPUSH CXMOV CL,04HSHR DX,CL;将十六进制数右移4位POP CXLOOP A1MOV AX,4C00HINT 21H;程序终止CODEENDSEND START实验步骤(1)编写程序,经编译、链接无误后装入系统。(2)在3500H、
17、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B 20。(3)先运行程序,待程序运行停止。(4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC 。(5)反复输入几组数据,验证程序功能。7. BCD码转换为二进制数将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,自行绘制流程图并编写程序。实验程序清单(例程文件名为:A2-5.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:XOR A
18、X, AXMOV CX, 0004HMOV SI, 3500HMOV DI, 3510HA1:MOV AL, SIADD AL, ALMOV BL, ALADD AL, ALADD AL, ALADD AL, BLINC SIADD AL, SIMOV DI, ALINC SIINC DILOOP A1MOV AX,4C00HINT 21H;程序终止CODEENDSEND START实验步骤(1)编写程序,经编译、链接无误后装入系统。(2)将四个二位十进制数的BCD码存入3500H3507H中,即:先键入E3500,然后输入01 02 03 04 05 06 07 08。(3)先运行程序,待程
19、序运行停止。(4)键入D3510显示转换结果,应为:0C 22 38 4E。(5)反复输入几组数据,验证程序功能。8提高练习将上述程序数据部分全部改为变量形式,然后运行,通过变量查看运行结果。(例如:将十进制数的ASCII码转换为BCD码实验程序清单(例程文件名:A2-2A.ASM)SSTACKENDSDATASEGMENTASCNDB31H,32H,33H,34H,35HBCDNDB 5 DUP(?)DATAENDS CODESEGMENTASSUME CS:CODE ,DS:DATASTART:MOVAX,DATAMOVDS,AXMOV CX, 0005H;转换位数MOV DI, OFFS
20、ET ASCN;ASCII码首地址A1:MOV BL, 0FFH;将错误标志存入BLMOV AL, DICMP AL, 3AH JNB A2;不低于3AH则转A2SUB AL, 30HJB A2;低于30H则转A2MOV BL, ALA2:MOV AL, BL;结果或错误标志送入ALMOV DI+BCDN,AL;结果存入目标地址INC DILOOP A1MOV AX,4C00HINT 21H;程序终止CODEENDSEND START)三、分支程序设计实验设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中
21、可能有三种情况,如图2.14所示。 (a) (b) (c)图4-1 源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图4-1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:当源数据块首地址目的块首地址时,从数据块末地址开始传送数据,如图4-1(b)所示。当源数据块首地址目的块首地址时,从数据块首地址开始传送数据,如图4-1(c)所示。实验程序流程图如图4-2所示。图4-2 程序流程图实验程序清单(例程文件名为:A4-1.ASM)SSTACKSEGMENT STACKDW
22、64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV CX, 0010HMOV SI, 3100HMOV DI, 3200HCMP SI, DIJA A2ADD SI, CXADD DI, CXDEC SIDEC DIA1:MOV AL, SIMOV DI, ALDEC SIDEC DIDEC CXJNE A1JMP A3A2:MOV AL, SIMOV DI, ALINC SIINC DIDEC CXJNE A2A3:MOV AX,4C00HINT 21H;程序终止CODEENDSEND START实验步骤1. 按流程图编写实验程序,经编
23、译、链接无误后装入系统。2. 用E命令在以SI为起始地址的单元中填入16个数。3. 运行程序,待程序运行停止。4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。四、循环程序设计实验实验内容及步骤1. 计算S12×33×44×5N(N1),直到N(N1)项大于200为止。编写实验程序,计算上式的结果,参考流程图如图5-1所示。实验程序清单(例程文件名为:A5-1.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDS
24、CODESEGMENTASSUME CS:CODESTART:MOV DX,0001HMOV BL,02HA1:MOV AL,BLINC BLMUL BLADD DX,AX;结果存于DX中CMP AX,00C8H;判断N(N+1)与200的大小JNA A1MOV AX,4C00HINT 21H;程序终止CODEENDSEND START实验步骤(1)编写实验程序,编译、链接无误后装入系统。 图5-1 程序流程图(2)运行程序,待程序运行停止。 (3)运算结果存储在寄存器DX中,查看结果是否正确。(4)可以改变N(N1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产生数据溢出
25、。2. 求某数据区内负数的个数设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。实验程序流程图如图5-2所示。实验程序清单(例程文件名为:A5-2.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DI, 3000H;数据区首地址MOV CL, DI;取数据个数XOR CH, CHMOV BL, CHINC
26、DI;指向第一个数据A1:MOV AL, DITEST AL, 80H;检查数据首位是否为1JE A2INC BL;负数个数加1A2:INC DILOOP A1MOV DI, BL;保存结果MOV AX,4C00HINT 21H;程序终止CODEENDSEND START实验步骤(1)按实验流程编写实验程序。(2)编译、链接无误后装入系统。(3)键入E3000,输入数据如下: 300006 (数据个数) 300112 300288 300382 300490 300522 300633 图5-2 程序流程图(4)先运行程序,待程序运行停止。(5)查看3007内存单元或寄存器BL中的内容,结果应
27、为03。(6)可以进行反复测试来验证程序的正确性。五、排序程序设计实验实验内容及步骤1. 气泡排序法在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求采用气泡法对该数据区中的数据按递增关系排序。设计思想:(1)从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N1个数比较,第N1个数与第N2个数比较等等;若第N1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。(2)对剩下的N1个数重复(1)这一步,找到N1个数中的最小数。(3)再重复(2),直到N个数全部排列好为止。实验程序清单(例程文件名为:A6-1.ASM)SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV CX, 000AHMOV SI, 300AHMOV BL, 0FFHA1:CMP BL, 0FFHJNZ A4MOV BL, 00HDEC CXJZ A4PUSH SIPUSH CXA2:DEC SIMOV AL, SIDEC SICMP AL, SIJA A3XCHG AL, SIMOV SI+01H, ALMOV B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信贷业务知识及风险管理相关考试试卷题目集锦
- 公务员护理专业介绍
- 2025年电商直播行业主播品牌合作策略研究报告
- 合作经营协议书餐饮业合同书
- 单位出差安全合同书
- 二零二五年度政府机关信息化设备采购合同
- 2025版郴州保安服务公司员工劳动合同及合同解除协议
- 二零二五年度bt项目设备采购合同
- 2025版陶瓷原材料市场调研与分析合同
- 二零二五年度户外军事演习帐篷搭建合同
- 《眼内炎患者的疾病》课件
- 《石油和化工行业产品碳足迹核算指南》
- 临时厕所施工方案
- 《工会基础知识》考试题库300题(含答案)
- 昆明理工大学《大学物理》2021-2022学年第一学期期末试卷
- 国际货物运输管理制度
- 智能物业管理大数据应用方案
- 香港公司股东协议书范本
- DB11T 731-2010 室外照明干扰光限制规范
- 伤寒与副伤寒患者的护理
- 锁骨骨折的护理查房
评论
0/150
提交评论