收藏 分销(赏)

实验指导书-微机原理与接口技术.doc

上传人:xrp****65 文档编号:7664507 上传时间:2025-01-11 格式:DOC 页数:59 大小:1.50MB
下载 相关 举报
实验指导书-微机原理与接口技术.doc_第1页
第1页 / 共59页
实验指导书-微机原理与接口技术.doc_第2页
第2页 / 共59页
实验指导书-微机原理与接口技术.doc_第3页
第3页 / 共59页
实验指导书-微机原理与接口技术.doc_第4页
第4页 / 共59页
实验指导书-微机原理与接口技术.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、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实验十五、交

2、通灯控制58附录一 TD-PIT-B实验系统的硬件环境 60实验要求预习实验内容1. 明确本次实验目的及任务,了解和掌握实验所需的理论知识及相关接口芯片的工作原理。2. 通过阅读示例程序,掌握编程方法及相关技巧。3. 对每次实验,选择其中一个项题目自己设计编写程序。实验过程1. 带上理论课教材、实验指导书及准备的实验程序。2. 若为接口电路,请关闭电源搭接线路,检查无误后,再开电源。3. 调试程序,记录结果。4. 实验结束后,请关闭电源,将各实验器材归位,清洁自己的桌面。编写实验报告1. 实验题目。2. 分析设计思想,绘制实验原理图、流程图。3. 程序清单及相关注释。4. 分析实验结果。5.

3、说明在实验过程中遇到了哪些问题,是如何处理的。6. 收获体会,不足之处和今后应注意的问题等。注意事项1. 实验以前,应确保PCI总线扩展卡与实验箱间扁平电缆连接的正确性。2. 实验前后应仔细检查实验箱,防止导线、元件等物品落入装置内,导致线路短路、元件损坏。3. 爱护实验设施,插接、拔取排线时,手握白色插头,不得从线中间拉取。4. 实验箱电源关闭后,不能立即重新开启。关闭与重新开启之间至少应有30秒间隔。第一部分 微机原理及汇编程序设计实验一、认识Tddebug集成操作软件一 实验目的1. 熟悉汇编程序的开发过程。2. 认识Tddebug集成操作软件。3. 掌握在Tddebug集成环境中编辑、

4、编译、连接汇编语言程序方法。4. 掌握INT 21H软件中断来调用DOS内部子程序的方法二 实验设备PC微机一台三 汇编语言程序的开发过程汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。汇编源程序调用编辑程序edit.exe调用编译程序tasm.exe或masm.exe调用链接程序tlink.exe或link.exe编辑.asm汇编.obj链接编辑编译链接图1.1 汇编语言程序开发过程1、源程序的编辑E: EDIT TEST.ASM编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。2、源程序的编译E:TASM TEST.ASM编译也称为

5、汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。根据错误信息应返回到编辑状态,修改源程序。3、目标程序的链接E: TLINK TEST.OBJ链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。4、调试可执行程序E:TD TEST.EXE如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。再对源程序进行修改,

6、即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。四 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 进

7、入保护模式调试状态Rmrun Run 运行实模式程序(.exe) Debug 进入实模式调试状态(.exe)Help 版本信息Quit退出Tddebug4. 菜单选择(1)快捷键选择主菜单:ALT热键(,)(2)按左右键或直接使用快捷键在主菜单之间切换。使用上下键可选择子菜单中的菜单项。5. 执行菜单项选中要执行的菜单项,键入Enter键,系统弹出对话框,输入需操作的文件名,以Enter键结尾,取消操作按Esc键。6. 实模式调试窗口说明(1)键入Alt+R选择Rmrun主菜单的Debug子菜单弹出实模式调试窗口。 此时可能会叠加一个报告无符号表的对话框,按Esc键关闭该对话框。(2)该窗口实

8、际是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:

9、单步执行F8:单句执行F9:运行程序F10:激活主菜单Ctrl+Break:终止程序执行Alt+X:退出TDTab:切换焦点区域l 当焦点区域在寄存器显示区中时:Ctrl+R:切换16位/32位通用寄存器并显示Ctrl+I:使光条指示寄存器的内容加1Ctrl+D:使光条指示寄存器的内容减1Ctrl+Z:使光条指示寄存器的内容清零Ctrl+C:手动修改光条指示寄存器的内容l 当焦点区域在数据显示区中时:Ctrl+D:修改数据显示格式Ctrl+G:指定需要显示的内存区域首地址Ctrl+S:查找指定的字节值表Ctrl+C:修改光标当前指示存储单元的内容l 当焦点区域在代码显示区中时:Ctrl+G:指

10、定需要显示的代码区域首地址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 实验目的:通过对该程

11、序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各个寄存器及数据区的内容。六 实验步骤1. 运行Tddebug软件,选择Edit菜单编写实验程序2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。3. 使用Rmrun菜单中的Run运行程序,观察运行结果。4. 使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下:1) 按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令的执行一定会使目标寄存器和状态

12、寄存器发生变化,从相关窗口看结果。2) 检查内存数据区的内容,关键是找出用户程序的数据段和附加段:l 方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区l 方法2:选择菜单View| Dump,弹出内存数据显示窗口。3) 查看执行结果:按Alt+F5,切换到用户窗口。5. 更改数据区中的数据,考察、调试程序的正确性。七 参考程序清单;数据传送实验,采用相对寻址方式DDATASEGMENT ;定义源数据段MSRDB HELLO,WORLD!$LENEQU $- MSRDDATAENDSEXDA SEGME

13、NT ;定义附加数据段MSDDB LEN DUP(?)EXDA ENDSMYSTACK SEGMENT STACK ;定义堆栈段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART:MOV AX,DDATAMOV DS,AX ;装载数据段寄存器MOV AX,EXDAMOV ES,AX ;装载附加数据段寄存器MOVSI,OFFSET MSRMOV DI,OFFSET MSDMOV CX,LENMOVBX,0NEXT: MOV AL,MSRBX ;开始传输数据MOV ES:MSDBX,ALIN

14、CBXLOOP NEXTPUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器MOV DX,OFFSET MSDMOV AH,9 INT 21H ;显示字符串MOV AX,4C00HINT 21H ;返回DOS状态CODE ENDS END START实验二、I/O程序设计一 实验目的1. 理解软中断的调用方法及中断过程。2. 掌握INT 21H软件中断来调用DOS系统I/O子程序的方法。3. 掌握将存储在内存单元中的数据在屏幕上显示的方法。4. 掌握从键盘输入信息到内存的方法。二 实验设备PC微机一台三 实验预习要求1复习DOS功能调用(INT 21H)中用于字符输入(功能号

15、为01H)、字符输出(功能号为02H)、字符串输入(功能号为0AH)以及字符串输出(功能号为09H)的调用方法。参见教材32位微型计算机原理与接口技术89页。2阅读示例程序,掌握输入/输出方法。3从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。四 实验内容1【示例】:将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。其中0H9H之间的数加30H,即可得0H9H的ASCII码,而AHFH的ASCII码,则需再加7H,参见表5-1。参考程序流程如图2-1所示。示例程序参见

16、参考程序清单。2编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。3从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。4编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:5=00000101B五 实验说明存储在内存单元中的数据要显示在屏幕上,必须首先将一个数据区中的数分解为各位不同进制的数(参见表5-1),然后转换为字符,通过DOS功能调用(INT 21H)完成显示。例:1) 显示单个字符MOV AH, 02HMOV DL, 待显示字符的ASCII码INT 21H2) 键盘输入并回显MOV AH, 01HINT 21H得到按键的ASCII码,存放于A

17、L中六 实验步骤1. 画出实验流程图。2. 运行Tddebug软件,选择Edit菜单编写实验程序3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4. 使用Rmrun菜单中的Run运行程序,观察运行结果。5. 使用Rmrun菜单中的Debug调试程序。单步执行指令,观察各寄存器及数据区的内容。6. 更改数据区中的数据,考察程序的正确性。七 参考程序清单及流程;将指定数据区SD的数据以十六进制数形式显示在屏幕上图2-1 一个字节数以十六进制数形式显示处理流程DATASEGMENTUSE16MESDBShow a as hex:,0AH,0DH,$SD

18、DBaDATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOVDS,AXMOVDX,OFFSET MES;显示提示信息MOVAH,09HINT 21HMOVSI,OFFSET SDMOVAL,DS:SIANDAL,0F0H;取高4位SHRAL,4CMPAL,0AH;是否是A以上的数JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;显示字符 MOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH;取低4位CMPAL,0AHJBC3ADD AL,07HC3:ADDAL,30HMOVDL,AL

19、;显示字符 MOVAH,02HINT21HMOVAX,4C00H;返回DOSINT21HCODEENDSENDSTART实验三、分支程序设计一 实验目的1. 掌握比较指令、条件转移指令的用法2. 掌握分支结构程序的组成3. 掌握分支程序的设计、调试方法二 实验设备PC微机一台三 实验预习要求1复习比较指令、条件转移指令的用法。2阅读示例程序,掌握分支编程方法及相关技巧。3从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。四 实验内容1【示例】判断X的大小,并根据判断结果以不同方式分别显示。2键入一个数,判断数是否在5 X24范围内,是输出标志0,不是输出。3. 编

20、写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。4从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。五 实验要求及说明1判断X的大小,并根据判断结果以不同方式分别显示设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示:N1=X=N2,或XN2。参见程序清单2键入一个数,判断数是否在5 X24范围内,是输出标志0,不是输出3编写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。假设在屏幕上显示的菜单如下:1Open2Save3Copy4Exit(Please ch

21、oose 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从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。数字09的ASCII码为30H39H;大写字母的ASCII码为41H5AH;小写字母的ASCII码为61H7AH;六 实验步骤1 画出实验

22、流程图。2 运行Tddebug软件,选择Edit菜单编写实验程序3 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4 使用Rmrun菜单中的Run运行程序,观察运行结果。5 使用Rmrun菜单中的Debug调试程序。观察构成分支条件的各标志的变化情况及相关寄存器内容。6 更改数据区中的数据,考察程序的正确性。七 参考程序清单;设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示:N1=X=N2,或XN2。DATA SEGMENT USE16MESG1 DB N1=X=N2 $ MESG2 DB XN2

23、$ NUMBER DB 66 ;无符号数XN1 EQU 22N2 EQU 88DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE, DS:DATABEG: MOV AX , DATA MOV DS, AX MOV DX, OFFSET MESG1 CMP NUMBER, N1 JNC NEXT ;X N1转 MOV DX, OFFSET MESG2 JMP DISPNEXT: CMP NUMBER, N2+1 JC DISP ;X N2转 MOV DX, OFFSET MESG3DISP: MOV AH, 9 INT 21H ;显示结果信息 MOV AH, 4

24、CH INT 21H ;返回DOSCODE ENDS END BEG实验四、循环程序设计一 实验目的1掌握比较指令、转移指令和循环指令的使用方法2掌握循环结构程序的组成3掌握循环程序的设计、调试方法二 实验设备PC微机一台三 实验预习要求1复习比较指令、条件转移指令和循环指令。2阅读示例程序,掌握循环程序的结构、循环控制方法及相关技巧。3从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。四 实验内容1【示例】求某数据区内负数的个数2试编程统计数据区中正数、零和负数的个数。3. 编程求无符号数字节序列中最大值和最小值。4从键盘输入一字符串,搜索该字符串中是否有字符“

25、A”,若有请输出其在串中的位置。五 实验说明1求某数据区内负数的个数为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,即得到区内包含负数的个数。参见程序清单.2试编程统计数据区中正数、零和负数的个数。3编程求无符号数字节序列中最大值和最小值实验中可使用BH和BL作为暂存现行最大值和最小值,且在初始时将BH和BL初始化为首字节的内容,循环依次比较每个字节的内容,求得最大值(存于BH中)和最小值(存于BL中),送屏幕显示。4从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。六 实验步骤1. 画出实验流程图。2. 运行

26、Tddebug软件,选择Edit菜单编写实验程序3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4. 使用Rmrun菜单中的Run运行程序,观察运行结果。5. 使用Rmrun菜单中的Debug调试程序。观察构成分支、循环条件的各标志的变化情况及相关寄存器内容。6. 更改数据区中的数据,考察程序的正确性。七 参考程序清单;确定数据区NUMB中负数的个数(存放于BL中)DDATASEGMENTNUMBDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HMESDBThe number of negative is:$DD

27、ATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AXMOVDI,OFFSET NUMBXORBH,BHMOVCX,10DA1:MOV AL,DITEST AL,80HJE A2INC BLA2:INC DILOOP A1MOVDX,OFFSET MES;show mesMOVAH,09HINT 21HMOVAL,BL;show the number of negativeANDAL,0F0H;get the highest 4 bitsSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,3

28、0HMOVDL,AL;show character MOVAH,02HINT21HMOVAL,BLANDAL,0FH;get the lowest 4 bitsCMPAL,0AHJBC3ADD AL,07HC3:ADDAL,30HMOVDL,AL;show character MOVAH,02HINT21HMOVAX,4C00H;go back to dosINT21HCODE ENDS END START实验五、运算类程序设计一 实验目的1. 掌握运算类指令对各状态标志位的影响及其测试方法2. 掌握运用运算类指令编程及调试的方法3. 掌握子程序设计及调用方法二 实验设备PC机一台三 实验预习

29、要求1复习运算类指令的用法。2复习子程序设计及调用方法。3阅读示例程序,掌握子程序的编程方法及相关技巧。4从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,用子程序处理方式编写程序,以便上机调试。四 实验内容1 示例:二进制双精度加法运算2 十进制数的BCD码加减法运算3 乘法运算4 除法运算5 编程用减奇数法开平方五 实验要求及说明80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表4-1所示的数据类型进行算术运算。表4-1 数据类型算术运算表数制二进制BCD码带符号无符号组合非组合运算符、操作符字节、字、多精度字节(二位数字)字节(一位数字)1. 二进制双精度加法运算计算

30、XY=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码加减法运算计算XY=Z,其中,X、Y、Z为非组合的BCD码,X=0400H,Y

31、=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),则显

32、示“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或不够减下一个自然数的奇数为止,然后统计减去

33、自然数的奇数的个数,它就是S的近似平方根。(1)本实验要求编程实现计算0040H的开平方值,并将运算结果显示在屏幕上。(2)试编程,由键盘输入一个十六进制数,将其转换为十进制数,并进行开平方运算。六 实验步骤1. 画出实验流程图。2. 画出内存数据分布示意图3. 运行Tddebug软件,选择Edit菜单编写实验程序4. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。5. 使用Rmrun菜单中的Run运行程序,观察运行结果。6. 使用Rmrun菜单中的Debug调试程序。单步执行加、减、乘、除及相关调整指令时,观察各标志的变化情况及寄存器、数据区的内容

34、。7. 更改数据区中的数据,考察程序的正确性。七 参考程序清单双精度加法运算;计算X+Y=Z;X=001565A0H,Y=0021B79EH,运算的结果Z=00371D3EH。DATA SEGMENTMESDBThe result is:$XLDW 65A0HXHDW 0015HYLDW 0B79EHYHDW 0021HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXMOVDX,OFFSET MES ;显示信息MOVAH,09HINT21HCALL COMPUTE ;调用计算子程序PUSHBX CAL

35、L SHWORD ; 显示高位字AXPOPBXMOVAX,BX CALL SHWORD ; 显示低位字BXMOVAX,4C00HINT21H;=COMPUTE PROCMOV AX,XLADD AX,YL ;低位相加MOVBX,AX ; 低位存放于BX中MOV AX,XH ADC AX,YH ; 带进位加法,高位存放于AX中RETCOMPUTE ENDP;=SHWORDPROC NEAR;显示AX子程序,二十六进制 MOV CX,4 MOV DX,AXAGA: ROL DX,4 MOV AL,DL AND AL,0FH;取低4位 CMP AL,10;是否是10以上的数 JC NEXT2 ADD

36、 AL,7NEXT2: ADD AL,30H MOV AH,0EH ;显示字符 INT 10H LOOP AGARETSHWORD ENDPCODE ENDSEND START实验六、代码转换程序设计一 实验目的1. 了解微机中所使用的各类数制及编码方法。2. 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。3. 掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。二 实验设备PC微机一台三 实验预习要求1复习运算类指令的用法。2复习子程序设计及调用方法。3阅读示例程序,掌握子程序的编程方法及相关技巧。4从实验内容中任选一道题目,仔细阅

37、读相关的实验要求及说明,用子程序处理方式编写程序,以便上机调试。四 实验内容1【示例】将5位十进制数的数字串转换为一个字的二进制数2编写程序将内存中一个字的数转换为十进制数的数字串显示。3编程将十进制的数字串转换为BCD码4编程将BCD码转换为二进制数5编程将二进制数转换为十进制数显示五 实验原理及说明6-1 计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或用其他信息进行处理,处理的结果又必须依照外设的要求变为ASCII码、或BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如

38、图6-1所示,数码对应关系如表6-1所示。6-11. 将十进制数的数字串转换为二进制数十进制数可以表示为:其中代表十进制数1、2、3、9、0。上式可以转换为:由上式可归纳出十进制数转换为二进制数的方法:从十进制数的最高位开始做乘10加次位的操作,依次类推,则可求出二进制数结果。本实验要求将缓冲区中的一个5位十进制数00012的ASCII码转换成二进制数,并将转换结果以十六进制数形式000C按位显示在屏幕上。转换过程的参考程序清单见后参考程序清单1,参考流程如图3-2所示。修改该示例程序,从键盘任意输入5个数,实现转换并显示。2. 将内存中一个字的数转换为十进制数的数字串。十六位二进制数(一个字

39、)的值域为065535,最大可转换为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位十进

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服