




免费预览已结束,剩余70页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术实验报告实验一 显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和Turbo Debugger的使用。二、实验所用设备1. PC微机一台。三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。(1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,$为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS系统 入口:AH=4CH 调用参数:AL=返回码四、实验步骤1. 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接; 3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容; 5. 更改数据区中的数据,考察程序的正确性。 图1-1 显示程序实验流程图五、程序清单DATA SEGMENT MES DB laoshihao:, 0AH,0DH,$ SD DB b DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:DI AND AL, 0F0H SHR AL,4 CMP AL, 0AH JB L1 ADD AL, 07H L1: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, DS:DI AND AL, 0FH CMP AL, 0AH JB L2 ADD AL, 07H L2: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START 六、实验调试过程调试过程中出现警告,显示没有使用堆栈段。但是程序编写本身没有使用,因此程序运行相对正常。第一个实验熟悉了轻松汇编软件的操作,为之后的实验打下了基础。七、实验运行结果实验二 数据传送实验一、实验目的1. 熟悉Tddebug调试环境和Turbo Debugger的使用; 2. 掌握与数据有关的不同寻址方式。 二、实验所用设备1. PC微机一台。 三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。实验程序:DDATA SEGMENT MSR DB LAOSHIXINKULE!$ LEN EQU $- MSR DDATA ENDS EXDA SEGMENT MSD DB LEN DUP(?) EXDA ENDS MYSTACK SEGMENT STACK DW 20 DUP(?) MYSTACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DDATA, ES:EXDA START: MOV AX, DDATA MOV DS, AX MOV AX, EXDA MOV ES,AX MOV SI, OFFSET MSR MOV DI, OFFSET MSD MOV BX, 0 MOV CX, LEN NEXT: MOV AL, MSRBX MOV ES:MSDBX, AL INC BX LOOP NEXT PUSH ES POP DS MOV DX, OFFSET MSD MOV AH, 9 INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START 四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容; 5. 更改数据区中的数据,考察程序的正确性。 五、实验调试过程程序中使用了寄存器相对寻址的方式。编译、连接、运行后程序运行正常。输入的字符显示在屏幕上。六、实验运行结果实验三 数码转换程序实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。 二、实验所用设备PC微机一台。三、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接; 3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。 四、实验内容计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如图3-1所示,数码对应关系如表3-1所示。图3-1 计算机与外设间的数码转换关系1将ASCII码表示的十进制数转换为二进制数 十进制数可以表示为:Dn10n+Dn-110n-1+D0100=Di10i 其中Di代表十进制数1、2、39、0。 上式可以转换为:Di10i=(Dn10+Dn-1)10)+Dn-2)10+D1)10+D0 由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。 本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。转换过程的参考流程如图3-2所示。(1)实验流程图图3-2 十进制ASCII转换为二进制数参考流程(2)实验程序DATA SEGMENT MSR DB 00012 LEN EQU $-MSR DATA ENDS CODE SEGMENT ; ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET MSR MOV CX,LEN-1 MOV AL,DS:SI MOV AH,0 SUB AX,30H A1: MOV BX,0AH MUL BX INC SI MOV DL,DS:SI MOV DH,0 SUB DX,30H ADD AX,DX DEC CX JNZ A1 MOV CL,16 MOV BX,AX A2: ROL BX,1 MOV DL,BL AND DL,01H ADD DL,30H MOV AH,2H INT 21H DEC CL JNZ A2 MOV AX,4C00H INT 21H CODE ENDS END START(3)调试过程调试过程正常没有出现问题。(4)实验结果2将十进制数的ASCII码转换为BCD码 本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码。转换部分的实验流程参见3-3。(1)实验流程图3-3 十进制ASCII转换为BCD码参考流程 (2)实验程序DATA SEGMENT STRING DB INPUT:,$ STRING1 DB OUTPUT:,$ MSR DB 6,?,6 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,STRING MOV AH,09H INT 21H MOV DX,OFFSET MSR MOV AH,0AH INT 21H MOV DL,0AH MOV AH, 02H INT 21H MOV DL,0DH MOV AH, 02H INT 21H LEA DX,STRING1 MOV AH,09H INT 21H MOV CL,MSR+1 MOV SI,0002H MOV BX,OFFSET MSR A1: MOV AL,BX+SI CMP AL,40H JNC B1 SUB AL,30H MOV CH,0 PUSH CX MOV CL,4 MOV DH,AL SHL DH,CL A2: ROL DH,1 MOV DL,DH AND DL,01H ADD DL,30H MOV AH,02H INT 21H DEC CL JNZ A2 POP CX INC SI DEC CL JNZ A1 B1: JZ B2 MOV DL,46H MOV AH,02H INT 21H INC SI DEC CL JNZ A1 B2: MOV AX,4C00H INT 21H CODE ENDS END START(3)调试过程调试过程中在换行显示时遇到了问题,无法换行显示。经过检查发现在显示过程中的换行代码写错了,改正之后程序显示正常。(4)实验结果3将十六进制数的ASCII码转换为十进制数 十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:ND=D4104+D3103+D2102+D110+D0 因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。第 75 页本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转换结果显示在屏幕上。(1)实验流程图3-4 将十六进制数的ASCII码转换为十进制数(2)实验程序DATA SEGMENT MSR DW 000CH MDR DB 5 DUP(?),$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET MDR MOV SI,5 MOV AX,MSR A1: DEC SI MOV DX,0 MOV CX,0AH DIV CX ADD DL,30H MOV BX+SI,DL CMP AX,0 JNE A1 JE A3 A2: DEC SI MOV AL,30H MOV BX+SI,AL CMP SI,0 JNE A2 A3: MOV DX,OFFSET MDR MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START(3)调试过程调试过程中在显示时遇到了问题,无法逐个显示。改为直接显示之后程序显示正常。(4)实验结果4BCD码转换为二进制码 本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。(1)实验流程图3-5 BCD码转换为二进制码参考流程 (2)实验程序DATA SEGMENT MSR DB 03H,02H,03H,05H,07H,06H,07H,08H,4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET MSR MOV DI,8 MOV CX,4 MOV DH,0AH A1: MOV SI,1 MOV AL,BX+SI MUL DH DEC SI ADD AL,BX+SI MOV BX+DI,AL PUSH CX MOV CH,AL MOV CL,8 A2: ROL CH,1 MOV DL,CH AND DL,01H ADD DL,30H MOV AH,02H INT 21H DEC CL JNZ A2 POP CX MOV DL,42H MOV AH,02H INT 21H MOV AH,2 MOV DL,13 INT 21H MOV AH,2 MOV DL,10 INT 21H ADD BX,2 INC DI DEC CX JNZ A1 MOV AX,4C00H INT 21H CODE ENDS END START(3)调试过程调试过程中没有出现问题程序显示正常。(4)实验结果实验四 运算类程序实验一、实验目的1. 掌握运算类指令编程及调试方法; 2. 掌握运算类指令对各状态标志位的影响及测试方法。 二、实验所用设备1. PC微机一台。 三、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接; 3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容; 5. 更改数据区中的数据,考察程序的正确性。 四、实验内容80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表4-1所示的数据类型进行算术运算。表4-1 数据类型算术运算表1二进制双精度加法运算 本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。 实验利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。在80386以上微机中可以直接使用32位寄存器和32位加法指令完成本实验的功能。(1)实验程序DATA SEGMENT X DW 065A0H,0015H Y DW 0B79EH,0021H Z DW 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,2 CLC MOV SI,0 L1: MOV AX,XSI ADC AX,YSI MOV ZSI,AX INC SI INC SI LOOP L1 MOV BX,Z2 CALL LIST_BX MOV BX,Z CALL LIST_BX MOV AH,4CH INT 21H LIST_BX PROC MOV CH,4 MOV CL,4 NEXT: ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,39H JLE PRINT ADD DL,7 PRINT: MOV AH,2 INT 21H DEC CH JNZ NEXT RET LIST_BX ENDP CODE ENDS END START(2)调试过程调试过程中一开始将X、Y的高低位弄反了,结果输出结果错误改正后没有出现问题程序显示正常。(4)实验结果实验五 分支程序设计实验一、实验目的1. 掌握分支程序的设计方法。二、实验所用设备1. PC微机一台。 三、实验内容程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图5-1所示。本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。 图5-1 分支结构示意图 实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。当循环结束操作时,将BH,BL分别送屏幕显示。参考实验流程如图5-2所示。四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序,提供8字节的数据:0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接; 3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 更改数据区中的数据,考察程序的正确性。 五、实验流程根据实验要求编写程序并调试,写出程序调试过程及运行情况。图5-2 分支程序实验流程图 六、实验程序 DATA SEGMENT D1 DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H C1 EQU $-D1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,C1-1 MOV SI,0 MOV BL,D1SI MOV BH,D1SI L1: INC SI MOV AL,D1SI CMP AL,BL JNB L2 MOV BL,AL L2: CMP AL,BH JNA L3 MOV BH,AL L3: LOOP L1 CALL DISP MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV BL,BH CALL DISP MOV AH,4CH INT 21H DISP PROC MOV CH,2 MOV CL,4 NEXT: ROL BL,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,39H JLE PRINT ADD DL,7 PRINT: MOV AH,2 INT 21H DEC CH JNZ NEXT RET DISP ENDP CODE ENDS END START七、实验调试过程调试过程没有出现问题程序显示正常。八、实验结果实验六 循环程序设计实验一、实验目的1. 掌握循环程序的设计方法。 二、实验所用设备1. PC微机一台。 三、实验内容本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。循环程序的结构示意如图6-1所示。图6-1 循环结构示意图 四、实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序,提供10字节的数据:12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H; 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接; 3. 使用Rmrun菜单中的Run,运行程序,观察运行结果; 4. 更改数据区中的数据,考察程序的正确性。 五、实验程序DATA SEGMENT D1 DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H C1 EQU $-D1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,C1 MOV BL,0 MOV SI,0 L1: MOV AL,D1SI CMP AL,0 JNS L2 INC BL L2: INC SI LOOP L1 MOV CH,2 MOV CL,4 NEXT: ROL BL,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,39H JLE PRINT ADD DL,7 PRINT: MOV AH,2 INT 21H DEC CH JNZ NEXT MOV AH,4CH INT 21H CODE ENDS END START六、实验调试过程调试过程没有出现问题程序显示正常。七、实验结果汇编实验实验心得: 汇编语言是本学期新学习的一门语言,在刚开始学习的时候确实遇到了很大的困难,他完全不同于C语言,但是老师上课讲解的非常细心,做实验的时候遇到的一些问题老师也会非常耐心的回答。因此经过老师的指点和自己的努力,我完成了汇编实验的要求内容。基本掌握了汇编语言的编写方法。为以后的学习打下了坚实的基础。 实验十一 8259中断控制器应用实验一、实验目的1. 学习中断控制器8259的工作原理;2. 掌握可编程控制器8259的应用编程方法。 二、实验所用设备1. PC微机一台;2. TD-PIT+ 实验系统一套。 三、实验内容1. 利用PC机给实验系统分配的中断线,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。 2. 利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。 四、实验说明及步骤 1单中断应用实验 本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。中断处理程序完成在屏幕上的显示字符“9”。实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。得到这些信息后就可以开始设计实验了。参考程序流程如图11-4所示。 实验步骤如下:1. 确认从PC机引出的两根扁平电缆已经连接在实验平台上; 2. 首先运行CHECK程序,查看INTR中断号及相关信息; 3. 参考实验流程图编写程序,然后编译链接; 4. 将单次脉冲单元的KK1+连接到系统总线上的INTR; 5. 运行程序,按动KK1+按键,观察中断是否产生。 (a)主程序 (b)中断处理程序 图11-4 8259中断应用实验(1)参考程序流程图 实验程序:;T8259-1.asm;单中断应用实验 INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址 INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址 INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址 INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$ CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省淮南市谢家集区2024-2025学年高二上学期期末考试数学考试题目及答案
- 安徽省蚌埠市五河县2024-2025学年高二上学期期末考试思想政治考点及答案
- 第03章 统计案例-学易试题君之单元测试君2025-2026学年高二数学人教版(选修2-3)(考试版)
- 第02章 地球上的大气-学易试题君之单元测试君2025-2026学年高一地理人教版(必修1)(考试版)
- 脑卒中后吞咽障碍患者进食护理
- 社区消防知识培训资料课件
- 统编版五年级语文上册第二单元拔尖测评卷(含答案)
- 社区消防安全知识培训课件新闻
- 社区流管业务知识培训课件
- iphone代理合同范本
- AQ 2029-2010 金属非金属地下矿山主排水系统安全检验规范(正式版)
- JGJ153-2016 体育场馆照明设计及检测标准
- 小学小升初数学试卷(基础题)
- 2024年交管12123学法减分考试题库和答案
- RV减速器核心零部件摆线轮如何通过数控铣削实现高效加工
- 2024企业人力资源数字化转型白皮书
- 黄瓜栽培技术及病虫害防治
- 《胜任能力模型》课件
- 教师如何应对学生的行为问题
- 良性滑膜瘤(腱鞘巨细胞瘤)
- 《护士职业素养》课件
评论
0/150
提交评论