实验指导书-微机原理与接口技术.doc
《实验指导书-微机原理与接口技术.doc》由会员分享,可在线阅读,更多相关《实验指导书-微机原理与接口技术.doc(59页珍藏版)》请在咨信网上搜索。
huangying@ 微机原理与接口技术 实验指导书 方义秋 编著 计算机综合实验中心 2005年8月 目 录 实验要求 …………………………………………………………………3 第一部分 微机原理及汇编程序设计 …………………………………4 实验一、认识Tddebug集成操作软件…………………………………4 实验二、I/O程序设计 …………………………………………………9 实验三、分支程序设计…………………………………………………11 实验四、循环程序设计…………………………………………………13 实验五、运算类程序设计………………………………………………15 实验六、代码转换程序设计……………………………………………19 实验七、宏指令应用……………………………………………………24 实验八、字符串处理……………………………………………………26 实验九、数据表格处理…………………………………………………28 实验十、子程序及软中断程序设计……………………………………29 第二部分 接口部分实验…………………………………………………33 实验十一、 PC机内部8259中断应用………………………………33 实验十二、 PCI总线中断应用………………………………………39 实验十三、8254定时/计数器应用……………………………………45 实验十四、8255并行接口应用…………………………………………53 实验十五、交通灯控制…………………………………………………58 附录一 TD-PIT-B实验系统的硬件环境 ………………………………60 实验要求 预习实验内容 1. 明确本次实验目的及任务,了解和掌握实验所需的理论知识及相关接口芯片的工作原理。 2. 通过阅读示例程序,掌握编程方法及相关技巧。 3. 对每次实验,选择其中一个项题目自己设计编写程序。 实验过程 1. 带上理论课教材、实验指导书及准备的实验程序。 2. 若为接口电路,请关闭电源搭接线路,检查无误后,再开电源。 3. 调试程序,记录结果。 4. 实验结束后,请关闭电源,将各实验器材归位,清洁自己的桌面。 编写实验报告 1. 实验题目。 2. 分析设计思想,绘制实验原理图、流程图。 3. 程序清单及相关注释。 4. 分析实验结果。 5. 说明在实验过程中遇到了哪些问题,是如何处理的。 6. 收获体会,不足之处和今后应注意的问题等。 注意事项 1. 实验以前,应确保PCI总线扩展卡与实验箱间扁平电缆连接的正确性。 2. 实验前后应仔细检查实验箱,防止导线、元件等物品落入装置内,导致线路短路、元件损坏。 3. 爱护实验设施,插接、拔取排线时,手握白色插头,不得从线中间拉取。 4. 实验箱电源关闭后,不能立即重新开启。关闭与重新开启之间至少应有30秒间隔。 第一部分 微机原理及汇编程序设计 实验一、认识Tddebug集成操作软件 一. 实验目的 1. 熟悉汇编程序的开发过程。 2. 认识Tddebug集成操作软件。 3. 掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。 4. 掌握INT 21H软件中断来调用DOS内部子程序的方法 二. 实验设备 PC微机一台 三. 汇编语言程序的开发过程 汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。 汇编 源程序 调用编辑程序 edit.exe 调用编译程序 tasm.exe或masm.exe 调用链接程序 tlink.exe或link.exe 编辑 .asm 汇编 .obj 链接 .exe .com 编辑 编译 链接 图1.1 汇编语言程序开发过程 1、源程序的编辑 E: > EDIT TEST.ASM 编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。 2、源程序的编译 E:>TASM TEST.ASM 编译也称为汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。根据错误信息应返回到编辑状态,修改源程序。 3、目标程序的链接 E:> TLINK TEST.OBJ 链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。 4、调试可执行程序 E:>TD TEST.EXE 如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。再对源程序进行修改,即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。 四. Tddebug集成操作软件使用说明 1. 该软件是集编辑(Edit.exe)、编译(Tasm.exe)、连接(Link.exe)和调试(TD.exe)等多个功能于一体,可在DOS环境下运行,为用户提供了一个学习微机原理的实验平台。 2. 启动Tddebug D:\wjyl> Tddebug 若启动成功,进入主界面。 3. Tddebug的菜单结构 主菜单 子菜单 菜单说明 Edit 编辑源文件(.asm) Compile —— Compile 编译源文件(.asm) —— Link 连接目标文件(.obj) —— Build All 编译和连接 Pmrun 进入保护模式调试状态 Rmrun —— Run 运行实模式程序(.exe) —— Debug 进入实模式调试状态(.exe) Help 版本信息 Quit 退出Tddebug 4. 菜单选择 (1)快捷键选择主菜单:ALT+热键(E,C,P,R,H,Q) (2)按左右键或直接使用快捷键在主菜单之间切换。使用上下键可选择子菜单中的菜单项。 5. 执行菜单项 选中要执行的菜单项,键入Enter键,系统弹出对话框,输入需操作的文件名,以Enter键结尾,取消操作按Esc键。 6. 实模式调试窗口说明 (1)键入Alt+R选择Rmrun主菜单的Debug子菜单弹出实模式调试窗口。 此时可能会叠加一个报告无符号表的对话框,按Esc键关闭该对话框。 (2)该窗口实际是Turbo Debugger调试器窗口,简称TD。其窗口的划分如图1-1所示。 主菜单条 代码显示调试区 寄存器显示调试区 标志寄存器显示调试区 内存数据显示调试区 堆栈显示调试区 快捷键操作提示区 图1-1 Turbo Debugger调试窗口划分图 (3)主菜单中包含了File、Edit、View、Run、Breakpoints、Data、Options、Windows和Help共9个菜单项。可使用热键选择相应的菜单。在调试程序或操作调试器中会使用一些快捷键来实现一些功能,下面将列出常用功能的快捷键及实现功能。 l 快捷键: F1:显示帮助窗口 F2:设置/清除断点 F4:执行到光标处 F5:放大/缩小窗口 F7:单步执行 F8:单句执行 F9:运行程序 F10:激活主菜单 Ctrl+Break:终止程序执行 Alt+X:退出TD Tab:切换焦点区域 l 当焦点区域在寄存器显示区中时: Ctrl+R:切换16位/32位通用寄存器并显示 Ctrl+I:使光条指示寄存器的内容加1 Ctrl+D:使光条指示寄存器的内容减1 Ctrl+Z:使光条指示寄存器的内容清零 Ctrl+C:手动修改光条指示寄存器的内容 l 当焦点区域在数据显示区中时: Ctrl+D:修改数据显示格式 Ctrl+G:指定需要显示的内存区域首地址 Ctrl+S:查找指定的字节值表 Ctrl+C:修改光标当前指示存储单元的内容 l 当焦点区域在代码显示区中时: Ctrl+G:指定需要显示的代码区域首地址 Ctrl+S:查找指定的指令 数字键/字符:修改光标当前指示指令 五. 实验内容及说明 1. 实验内容:数据传送实验 1) 编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。参见示例出程序。 2) 修改此程序,采用字符串传送指令完成。 2. 实验中使用DOS功能调用(INT 21H): 参见教材《32位微型计算机原理与接口技术》89页 (1)显示字符串 入口:AH=09H 调用参数:DS:DX=串首地址,‘$’为结束字符。 (2)返回DOS系统 入口:AH=4CH 调用参数:AL=返回码 3.有关字符串的操作指令 参见教材《32位微型计算机原理与接口技术》62页 4. 实验目的:通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各个寄存器及数据区的内容。 六. 实验步骤 1. 运行Tddebug软件,选择Edit菜单编写实验程序 2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 3. 使用Rmrun菜单中的Run运行程序,观察运行结果。 4. 使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下: 1) 按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。 2) 检查内存数据区的内容,关键是找出用户程序的数据段和附加段: l 方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区 l 方法2:选择菜单View| Dump,弹出内存数据显示窗口。 3) 查看执行结果:按Alt+F5,切换到用户窗口。 5. 更改数据区中的数据,考察、调试程序的正确性。 七. 参考程序清单 ;数据传送实验,采用相对寻址方式 DDATA SEGMENT ;定义源数据段 MSR DB "HELLO,WORLD!$" 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 CX,LEN MOV BX,0 NEXT: MOV AL,MSR[BX] ;开始传输数据 MOV ES:MSD[BX],AL INC BX LOOP NEXT PUSH ES POP DS ;将附加段寄存器指向的段值赋给数据段寄存器 MOV DX,OFFSET MSD MOV AH,9 INT 21H ;显示字符串 MOV AX,4C00H INT 21H ;返回DOS状态 CODE ENDS END START 实验二、I/O程序设计 一. 实验目的 1. 理解软中断的调用方法及中断过程。 2. 掌握INT 21H软件中断来调用DOS系统I/O子程序的方法。 3. 掌握将存储在内存单元中的数据在屏幕上显示的方法。 4. 掌握从键盘输入信息到内存的方法。 二. 实验设备 PC微机一台 三. 实验预习要求 1.复习DOS功能调用(INT 21H)中用于字符输入(功能号为01H)、字符输出(功能号为02H)、字符串输入(功能号为0AH)以及字符串输出(功能号为09H)的调用方法。参见教材《32位微型计算机原理与接口技术》89页。 2.阅读示例程序,掌握输入/输出方法。 3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。 四. 实验内容 1.【示例】:将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。 设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。其中0H~9H之间的数加30H,即可得0H~9H的ASCII码,而AH~FH的ASCII码,则需再加7H,参见表5-1。参考程序流程如图2-1所示。示例程序参见参考程序清单。 2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。 3.从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。 4.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:5=00000101B 五. 实验说明 存储在内存单元中的数据要显示在屏幕上,必须首先将一个数据区中的数分解为各位不同进制的数(参见表5-1),然后转换为字符,通过DOS功能调用(INT 21H)完成显示。例: 1) 显示单个字符 MOV AH, 02H MOV DL, 待显示字符的ASCII码 INT 21H 2) 键盘输入并回显 MOV AH, 01H INT 21H 得到按键的ASCII码,存放于AL中 六. 实验步骤 1. 画出实验流程图。 2. 运行Tddebug软件,选择Edit菜单编写实验程序 3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4. 使用Rmrun菜单中的Run运行程序,观察运行结果。 5. 使用Rmrun菜单中的Debug调试程序。单步执行指令,观察各寄存器及数据区的内容。 6. 更改数据区中的数据,考察程序的正确性。 七. 参考程序清单及流程 ;将指定数据区SD的数据以十六进制数形式显示在屏幕上 图2-1 一个字节数以十六进制数形式显示处理流程 DATA SEGMENT USE16 MES DB 'Show a as hex:',0AH,0DH,'$' SD DB 'a' DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES;显示提示信息 MOV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,DS:[SI] AND AL,0F0H ;取高4位 SHR AL,4 CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;显示字符 MOV AH,02H INT 21H MOV AL,DS:[SI] AND AL,0FH ;取低4位 CMP AL,0AH JB C3 ADD AL,07H C3: ADD AL,30H MOV DL,AL ;显示字符 MOV AH,02H INT 21H MOV AX,4C00H ;返回DOS INT 21H CODE ENDS END START 实验三、分支程序设计 一. 实验目的 1. 掌握比较指令、条件转移指令的用法 2. 掌握分支结构程序的组成 3. 掌握分支程序的设计、调试方法 二. 实验设备 PC微机一台 三. 实验预习要求 1.复习比较指令、条件转移指令的用法。 2.阅读示例程序,掌握分支编程方法及相关技巧。 3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。 四. 实验内容 1.【示例】判断X的大小,并根据判断结果以不同方式分别显示。 2.键入一个数,判断数是否在5< X<24范围内,是输出标志0,不是输出-1。 3. 编写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。 4.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。 五. 实验要求及说明 1.判断X的大小,并根据判断结果以不同方式分别显示 设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示:N1<=X<=N2,或X<N1,或X>N2。参见程序清单 2.键入一个数,判断数是否在5< X<24范围内,是输出标志0,不是输出-1 3.编写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。 假设在屏幕上显示的菜单如下: 1………………………………Open 2………………………………Save 3………………………………Copy 4………………………………Exit (Please choose 1,2,3,OR 5)—— 若输入1,则显示“I choose Open”后程序结束;若输入2,则显示“I choose Save”后程序结束;若输入3,则显示“I choose Copy”后程序结束;若输入4,则显示“I choose Exit”后程序结束;若输入其它字符,则显示“You press an error key ”后程序结束; 注意可使用宏指令简化程序。 4.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。 数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH;小写字母的ASCII码为61H~7AH; 六. 实验步骤 1. 画出实验流程图。 2. 运行Tddebug软件,选择Edit菜单编写实验程序 3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4. 使用Rmrun菜单中的Run运行程序,观察运行结果。 5. 使用Rmrun菜单中的Debug调试程序。观察构成分支条件的各标志的变化情况及相关寄存器内容。 6. 更改数据区中的数据,考察程序的正确性。 七. 参考程序清单 ;设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示:N1<=X<=N2,或X<N1,或X>N2。 DATA SEGMENT USE16 MESG1 DB ' N1<=X<=N2 $ ' MESG2 DB ' X<N1 $ ' MESG3 DB ' X>N2 $ ' NUMBER DB 66 ;无符号数X N1 EQU 22 N2 EQU 88 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA BEG: MOV AX , DATA MOV DS, AX MOV DX, OFFSET MESG1 CMP NUMBER, N1 JNC NEXT ;X ≥ N1转 MOV DX, OFFSET MESG2 JMP DISP NEXT: CMP NUMBER, N2+1 JC DISP ;X ≤ N2转 MOV DX, OFFSET MESG3 DISP: MOV AH, 9 INT 21H ;显示结果信息 MOV AH, 4CH INT 21H ;返回DOS CODE ENDS END BEG 实验四、循环程序设计 一. 实验目的 1.掌握比较指令、转移指令和循环指令的使用方法 2.掌握循环结构程序的组成 3.掌握循环程序的设计、调试方法 二. 实验设备 PC微机一台 三. 实验预习要求 1.复习比较指令、条件转移指令和循环指令。 2.阅读示例程序,掌握循环程序的结构、循环控制方法及相关技巧。 3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。 四. 实验内容 1.【示例】求某数据区内负数的个数 2.试编程统计数据区中正数、零和负数的个数。 3. 编程求无符号数字节序列中最大值和最小值。 4.从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。 五. 实验说明 1.求某数据区内负数的个数 为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,即得到区内包含负数的个数。参见程序清单. 2.试编程统计数据区中正数、零和负数的个数。 3.编程求无符号数字节序列中最大值和最小值 实验中可使用BH和BL作为暂存现行最大值和最小值,且在初始时将BH和BL初始化为首字节的内容,循环依次比较每个字节的内容,求得最大值(存于BH中)和最小值(存于BL中),送屏幕显示。 4..从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。 六. 实验步骤 1. 画出实验流程图。 2. 运行Tddebug软件,选择Edit菜单编写实验程序 3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4. 使用Rmrun菜单中的Run运行程序,观察运行结果。 5. 使用Rmrun菜单中的Debug调试程序。观察构成分支、循环条件的各标志的变化情况及相关寄存器内容。 6. 更改数据区中的数据,考察程序的正确性。 七. 参考程序清单 ;确定数据区NUMB中负数的个数(存放于BL中) DDATA SEGMENT NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H MES DB 'The number of negative is:$' DDATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DDATA START: MOV AX,DDATA MOV DS,AX MOV DI,OFFSET NUMB XOR BH,BH MOV CX,10D A1: MOV AL,[DI] TEST AL,80H JE A2 INC BL A2: INC DI LOOP A1 MOV DX,OFFSET MES ;show mes MOV AH,09H INT 21H MOV AL,BL ;show the number of negative AND AL,0F0H ;get the highest 4 bits SHR AL,4 CMP AL,0AH JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H MOV AL,BL AND AL,0FH ;get the lowest 4 bits CMP AL,0AH JB C3 ADD AL,07H C3: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H MOV AX,4C00H ;go back to dos INT 21H CODE ENDS END START 实验五、运算类程序设计 一. 实验目的 1. 掌握运算类指令对各状态标志位的影响及其测试方法 2. 掌握运用运算类指令编程及调试的方法 3. 掌握子程序设计及调用方法 二. 实验设备 PC机一台 三. 实验预习要求 1.复习运算类指令的用法。 2.复习子程序设计及调用方法。 3.阅读示例程序,掌握子程序的编程方法及相关技巧。 4.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,用子程序处理方式编写程序,以便上机调试。 四. 实验内容 1. 示例:二进制双精度加法运算 2. 十进制数的BCD码加减法运算 3. 乘法运算 4. 除法运算 5. 编程用减奇数法开平方 五. 实验要求及说明 80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表4-1所示的数据类型进行算术运算。 表4-1 数据类型算术运算表 数制 二进制 BCD码 带符号 无符号 组合 非组合 运算符 +、—、×、÷ +、— +、—、×、÷ 操作符 字节、字、多精度 字节(二位数字) 字节(一位数字) 1. 二进制双精度加法运算 计算X+Y=Z,并将结果输出到屏幕上。其中X=001565A0H,Y=0021B79EH,运算的结果Z=00371D3EH。 (1)本实验是双精度(2个16位,即32位)运算,利用累加器AX,先求低16位和,并存储于低地址存储单元,后求高16位和,再存入高地址存储单元。由于低位和可能向高位有进位,此时CF=1,因而高位字相加语句需用ADC指令,即同时加上CF中的1。参见参考程序清单。 (2)画出X、Y、Z三个数在内存中的分布示意图。 (3)修改示例程序,直接使用32位寄存器和32位加法指令完成本实验功能。 2. 十进制数的BCD码加减法运算 计算X-Y=Z,其中,X、Y、Z为非组合的BCD码,X=0400H,Y=0102H,运算结果Z=0208H。 (1)编写两个数值长度不等的BCD码相加程序。 思路:对应位用ADC带进位加法求和(考虑CF标志),再进行DAA调整(只对AL处理。 3. 乘法运算 本实验要求实现十进制数乘法,被乘数和乘数均以BCD码形式存放在内存中,被乘数为02345,乘数为3,运算结果7035,显示在屏幕上为:00 00 07 00 03 05。 (1)调试程序观察加、减、乘、除及相关调整指令,对标志位的影响。 4. 除法运算 本实验要求在内存中存储5个无符号数,将其用101H除,在进行BCD码转换后,若奇偶位为偶(PF=1),则显示“P”;为负(SF=1),则显示“S”;为零(ZF=1),则显示“Z”;若PF、SF、ZF标志皆为0,则显示“;”。 除法指令DIV、IDIV执行后,不影响任何标志位,而BCD码调整指令AAD会影响PF、SF、ZF标志。通过本实验考察这些指令对标志的影响情况。 5. 编程用减奇数法开平方 80x86指令系统中没有开平方指令,因此,开平方运算是通过程序来实现的。用减奇数法可求得近似平方根,获得平方根的整数部分。因为,N个自然数中奇数之和等于,即:,展开: 1+3+5=9= 1+3+5+7=16= 1+3+5+7+9+11+13+15=64= 所以,若要做的运算,就可以从S中逐次减去自然数中的奇数1,3,5,7,……,一直到被减数为0或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数的个数,它就是S的近似平方根。 (1)本实验要求编程实现计算0040H的开平方值,并将运算结果显示在屏幕上。 (2)试编程,由键盘输入一个十六进制数,将其转换为十进制数,并进行开平方运算。 六. 实验步骤 1. 画出实验流程图。 2. 画出内存数据分布示意图 3. 运行Tddebug软件,选择Edit菜单编写实验程序 4. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 5. 使用Rmrun菜单中的Run运行程序,观察运行结果。 6. 使用Rmrun菜单中的Debug调试程序。单步执行加、减、乘、除及相关调整指令时,观察各标志的变化情况及寄存器、数据区的内容。 7. 更改数据区中的数据,考察程序的正确性。 七. 参考程序清单 双精度加法运算 ;计算X+Y=Z ;X=001565A0H,Y=0021B79EH,运算的结果Z=00371D3EH。 DATA SEGMENT MES DB 'The result is:$' XL DW 65A0H XH DW 0015H YL DW 0B79EH YH DW 0021H 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 CALL COMPUTE ;调用计算子程序 PUSH BX CALL SHWORD ; 显示高位字AX POP BX MOV AX,BX CALL SHWORD ; 显示低位字BX MOV AX,4C00H INT 21H ;============================================= COMPUTE PROC MOV AX,XL ADD AX,YL ;低位相加 MOV BX,AX ; 低位存放于BX中 MOV AX,XH ADC AX,YH ; 带进位加法,高位存放于AX中 RET COMPUTE ENDP ;============================================== SHWORD PROC NEAR ;显示AX子程序,二→十六进制 MOV CX,4 MOV DX,AX AGA: ROL DX,4 MOV AL,DL AND AL,0FH ;取低4位 CMP AL,10 ;是否是10以上的数 JC NEXT2 ADD AL,7 NEXT2: ADD AL,30H MOV AH,0EH ;显示字符 INT 10H LOOP AGA RET SHWORD ENDP CODE ENDS END START 实验六、代码转换程序设计 一. 实验目的 1. 了解微机中所使用的各类数制及编码方法。 2. 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。 3. 掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。 二. 实验设备 PC微机一台 三. 实验预习要求 1.复习运算类指令的用法。 2.复习子程序设计及调用方法。 3.阅读示例程序,掌握子程序的编程方法及相关技巧。 4.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,用子程序处理方式编写程序,以便上机调试。 四. 实验内容 1.【示例】将5位十进制数的数字串转换为一个字的二进制数 2.编写程序将内存中一个字的数转换为十进制数的数字串显示。 3.编程将十进制的数字串转换为BCD码 4.编程将BCD码转换为二进制数 5.编程将二进制数转换为十进制数显示 五. 实验原理及说明 6-1 计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或用其他信息进行处理,处理的结果又必须依照外设的要求变为ASCII码、或BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如图6-1所示,数码对应关系如表6-1所示。 6-1 1. 将十进制数的数字串转换为二进制数 十进制数可以表示为: 其中代表十进制数1、2、3、…、9、0。 上式可以转换为: 由上式可归纳出十进制数转换为二进制数的方法:从十进制数的最高位开始做乘10加次位的操作,依次类推,则可求出二进制数结果。 本实验要求将缓冲区中的一个5位十进制数00012的ASCII码转换成二进制数,并将转换结果以十六进制数形式000C按位显示在屏幕上。转换过程的参考程序清单见后参考程序清单1,参考流程如图3-2所示。 修改该示例程序,从键盘任意输入5个数,实现转换并显示。 2. 将内存中一个字的数转换为十进制数的数字串。 十六位二进制数(一个字)的值域为0~65535,最大可转换为5位十进制数。五位十进制数可表示为: 因此,将十六位二进制数转换为5位ASCII码表示的十进制数数字串,即采用除10取余方法,分别求,并将它们转换为ASCII码。以字符串方式显示在屏幕上。转换部分的参考流程参见图6-4。 假设缓冲区中存放的数是000CH转换成十进制数的数字串后,在屏幕显示“00012”。 3. 将十进制数的数字串转换为BCD码 (1)本实验要求将一个5位十进制数的数字串“54321”的ASCII码存放在数据区中,转换为BCD码后,将转换结果分别显示在屏幕上,即显示:01,02,03,04,05。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一个字节取其低4位即变为BCD码。转换部分的实验参考流程见图6-3。 (2)修改程序,实现从键盘输入5位十进- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 微机 原理 接口 技术
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文