版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成绩实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:拆字、拼字程序一、实验预习内容1、8086/8088有14个16位寄存器,按其用途可分为8个 寄存器、2个 寄存器和4个 寄存器。2、通用寄存器分别是 。代码段寄存器是 ,数据段寄存器是 ,堆栈段寄存器是 。3、在数据寄存器中,被称为累加器的 用于算术运算外,还用于输入/输出等操作。被称为基址寄存器的 它可作为存储器指针来使用。被称为计数寄存器的 在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用 来指明移位的位数。而数据寄存器 在进行乘、除运算时,它可作为默认的操作数
2、参与运算,也可用于存放I/O的端口地址。 4、堆栈指针寄存器 与SS配合使用,可指向目前的堆栈位置;基址指针寄存器 可用作SS的一个相对基址位置;源变址寄存器 可用来存放相对于DS段之源变址指针;目的变址寄存器 可用来存放相对于 ES 段之目的变址指针。指令指针寄存器 用来存放代码段中的偏移地址。5、在8088指令的寻址方式中,下列各指令中属于立即寻址的是 ,属于寄存器寻址的是 ,属于直接寻址的是 ,属于寄存器间接寻址的是 ,属于基址寻址的是 ,属于基址加变址寻址的是 。A、MOV AX,2000H B、MOV AX,2000H C、MOV AX,CXD、MOV AX,DI E、MOV AX,
3、BXSI F、MOV AX,BP6、在DEBUG下,反汇编命令是 ,汇编命令是 ,显示显示内存单元内容的命令是 ,修改内存单元内容的命令 ,检查和修改寄存器内容的命令是 ,逐步追踪执行命令是 ,连续执行程序命令是 ,退出命令是 。二、实验内容与过程 1、设DS为当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令在存储器偏移地址300H304H单元中连续按顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么,并指出这条指令是什么寻址方式。程序清单如下:MOV AX,
4、0000HMOV BX,0300HMOV SI,0002HMOV DI,0302HMOV AX,BX AX的内容: ; MOV AX,0302H AX的内容: ; MOV AX,DI AX的内容: ; MOV AX,BX AX的内容: ; MOV AX,0001BX AX的内容: ; MOV AX,BXSI AX的内容: ; MOV AX,0002DI AX的内容: ; HLT (1)在汇编软件环境下,首先输入程序,并在建立的文件夹下进行保存;然后进行编译生成 ,发现问题进行编辑修改再进行编译;再进行链接生成 。 (2)用 E 命令加带数据段物理地址 ,将偏移地址300H304H单元中连续按顺
5、序装入 。(4)用 命令单步跟踪执行程序,查看 寄存器的内容,根据每条指令执行情况,记录其所存放的数据。2、把4000H单元的内容拆开,高位送4001H单元,低位送4002H单元。拆字程序清单如下,按要求在填空处完善注释。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV BX,4000H ;把地址单元4000H给BX寄存器 MOV BX,5BH ; MOV AL,BX ;把4000H单元的内容给AL MOV AH,AL ;再把4000H单元的内容给AH MOV CL,04 ; SHR AH,CL ; ADD BX,01 (或I
6、NC BX) ;地址单元加1 MOV BX,AH ; AND AL,0FH ;屏蔽掉AL中的高四位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AL ; HLTCODES ENDS ;程序结束 END START查看4000H起始的三个单元内容的命令为 ,从4000H起三个地址单元的保存的数据依次为: 。3、把2000H、2001H的单元的低4位拼成一个字,送入2002H单元(第一个字的低4位和第二个字的低4位拼成一个字)。完善程序,并用DEBUG进行调试。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: M
7、OV AX,DATAS MOV DS,AX MOV BX,2000H ;把地址单元2000H给BX寄存器 ;把2000H单元所要拼的字置为F6H ;把2001H单元所要拼的字置为28H MOV AL,BX ;把2000H单元的内容给AL MOV AH,BX+1 ;把2001H单元的内容给AH ;屏蔽掉AL中的高四位 MOV CL,04H ;设置移位次数为4 ;AH的内容左移4位 ;进行拼字 ADD BX,02H ;地址单元到2002H ;将拼好的字保存在2002H单元 HLTCODES ENDS ;程序结束 END START使用 命令查看存放在2000H单元起三个地址单元中的数据分别是: 。
8、三、实验总结 1、汇编程序的调试过程有关问题:输入源程序代码并进行存盘;对文件进行 ,若发现错误可根据错误信息进行修改,直到无错为止;在DEBUG下,用相关命令进行查看、修改或执行汇编程序,常用的相关命令分别是 ; 在DEBUG下,程序运行的结果一般存放在相关 中,或者存放在数据段 偏移地址 单元中。在显示结果中所看到的 分别表示溢出、方向、中断、符号、零、辅助进位、奇偶、进位标志状态是复位状态。2、其它相关问题: 汇编程序保存的文件名(及文件夹)必须符合 命名要求,一般由26个英文字母和10个数字组成,文件名长度不准超过 个字符。输入程序代码指令其英文符号的 或者 输入都一样,而指令间该有的
9、 不能省略,其指令和标点符号必须是在 状态下输入方可有效。程序代码和程序数据一般存放在不同的 下,若存在同一段地址下,其偏移地址可不同,且偏移地址间要有一定的相隔空间。偏移地址从 开始,到最大 结束。 3、所有移位指令的目标操作数,只允许是 ,指令中的计数值可以是常数1,即移位1次,如果移位多于1次,则必须将移位数N事先装入 寄存器中,本指令最多可移位255位。一般来说,当目标操作数为无符号数时采用 指令;若目标操作数为有符号数时,则采用 指令。4、在逻辑运算指令中,仅 指令不影响标志位;其它指令 执行后,除AF状态不定外,总是使OF=CF=0,ZF、SF、PF则根据运算结果被置位或复位。成绩
10、实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:数据区移动与分支程序一、实验预习内容 1、8086/8088计算机指令一般由 和 操作数组成(无操作数指令除外)。根据操作数存放位置的不同,可将操作数分为三种类型 。 2、存储器操作数存放在内存的数据区,数据区的物理地址由 共同构成。大部分操作数的 由数据段寄存器 的内容来确定。 3、数据传送指令是计算机中最基本、最重要、最常用的一种指令,主要用来实现 的字节或字的传送。在数据传送指令中,需要注意的是 必须保持一致。 4、传送指令MOV在使用时应注意: 和 不能作为目的操作数;立即数传送到 时一
11、定要与 一致;源操作数和目的操作数不能同时为 。 5、加法指令ADD和带进位加法指令ADC执行时会对标志位 受影响。 6、简单分支程序根据条件是否满足将程序分为 分支,按不同条件做出相应的处理。这种程序往往是用 的方法,在 中设置相应的标志位,然后再根据适当的 实现不同情况的分支转移。7、条件转移指令可分为三类,在下列指令中适用于无符号数的条件转移指令助记符中是 ;适用于有符号数的条件转移指令助记符是 ;适用于标志位的条件转移指令助记符是 。 JA、JB、JC、JE、JG、JL、JZ、JAE、JGE、JLE、JNE、JNBE8、在条件转移指令中,指令助词符JAE和 、JG和 、JLE和 、JZ
12、和 执行的结果是一样的。 二、实验内容与过程 1、把4100H源RAM区首址起的16字节数据传送到4200H目标RAM区。读懂程序,完善程序注释,用DEBUG调试并查看结果。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV CX,010H ;置搬移数据循环次数 MOV SI,4100H ; MOV DI,4200H ; MOV BX,SI ;将源数据块首址给BX MOV DL,01HNUM: MOV BX,DL ;将16个数据存放在源数据块区 INC BX INC DL LOOP NUM MOV CX,010H ;置搬移数据循环
13、次数 CMP SI,DI ;SI与DI相比较 JA L2 ; ADD SI,CX ;SI与CX相加 ADD DI,CX ;DI与CX相加L1: DEC SI ; DEC DI ; MOV AL,SI ; MOV DI,AL LOOP L1 ;循环16次结束 JMP HEND ;跳转到结束L2: MOV AL,SI ;把源数据块存储单元的数据传送到目的数据块 MOV DI,AL INC SI ; INC DI ; LOOP L2 ;数据搬移16次后结束HEND: HLTCODES ENDS ;程序结束 END START 连续执行该程序的命令是 ,查看存放在4100H地址单元的数据命令是 ,查看
14、存放在4200H地址单元的数据命令是 ,检查4100H4110H、4200H4210H中存储的数据为 。2、假设有一组数据为25,-4,0,3,100,-51,17,62。请编程判断:每个是数大于0,等于0,还是小于0,并输出Y的值。即: 1 当x0y= 0 当x=0 -1 当x=0则转移到DY处XY0: MOV BL,-1 ;小于0将-1给BL MOV DI,BL ;将-1存储到地址单元 JMP XH ;跳转到XH处DY: ;若等于0转移到XD处 MOV BL,1 MOV DI,BL ;将1给BL且存储到地址单元 JMP XH ;跳转到XH处XD: MOV BL,0 ;给BL赋值为0 MOV
15、 DI,BL ;将0存储到地址单元XH: ;数据表偏移地址增1 ;存放结果数据偏移地址增1 LOOP BJ ;判断CX是否为0,是则结束,否则进行循环 HLTCODES ENDS ;程序结束 END START 连续执行程序的命令是 ,查看存放在内存中的数据命令是 存放在数据段地址单元的结果是 三、实验总结 1、段定义伪指令用于将源程序划分为若干个段。这些逻辑段按照用途可分为 和附加段。需要说明的是,并不是所有程序都必须包含这四个逻辑段,可根据需要进行配置。每个 指令可定义一个逻辑段。段寄存器说明伪指令 向汇编程序指示当前各段所用的寄存器,并设定段寄存器与段的对应关系。 2、存储器由许多存储单
16、元组成,每一个存储单元可以存放一个8位二进制数,即 ,每一个存储单元都指定了一个惟一的编号,称之为 。存放程序代码的起始地址由 寄存器来指定,存放程序所用数据的起始地址由 寄存器来给定。程序在执行过程中的偏移地址是由 寄存器来给定。 3、DB伪操指令用来定义字节型变量,其中的每个操作数都占有 存储单元,每个操作数的值不超过 。DW伪操指令用来定义字型变量,其中的每个操作数都占有 ,字的低位字节存放在第一个字节地址单元中,字的高位字节存放在第二个字节地址单元中。DD伪操指令用来定义双字型变量,其中的每个操作数都占有 ,双字的最低位字节在第一个字节地址单元中,次低位字节在第二个字节地址单元中,次高
17、位字节在第三个字节地址单元中,高位字节在第四个字节地址单元中。 4、以CMP A,B示例说明比较指令功能用法如下:判断两个数操作数是否相等,可根据 标志位来判断,若 说明A=B;若 说明AB。 判断两个无符号操作数的大小,可根据 标志位来判断,若 说明AB;若 说明AB。 成绩实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:循环程序设计一、实验预习内容 1、在设计循环程序中,一般结构由循环 部分、 部分、 部分和 部分。在循环开始前首先应建立 和其它循环参数的起始值等。控制循环是循环程序设计中最重要的一个环节,这部分用于控制重复执行的次数,包
18、括修改 和 ,为下一次循环做好准备,以及修改循环计数器,判断循环结束条件是否满足,若条件满足则退出循环,否则继续循环。最常见控制循环的两种方式是 和 。值得指出的是,循环程序的前后两部分只能执行一次,而循环主体部分不能出现转向建立循环参数起始值部分,否则会造成程序 ,或者得不到预期结果。2、设计多重循环程序时,可以从 循环到 循环一层一层的进行。需要注意的是,多重循环可以嵌套,但不能 。此外,转移指令可以从循环结构内向外转出,但不能从 循环直接跳进 循环。3、常用计数循环控制指令LOOP 目标号,首先得把循环计数值赋给 寄存器,当执行到LOOP指令时,先做 ,再进行判别,当 转移到目标号继续循
19、环,直到 退出循环。二、实验内容与过程以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于成绩高于该学生的人数之和再加1)。寄存器分配情况说明如下:AX存放当前被测学生的成绩BX存放当前被测学生的相对地址指针CX内循环计数值DX存放当前被测学生的名次计数值SI内循环测试时的地址指针DI外循环计数值按要求编程,计算学生排名,并输出排名结果:DATAS SEGMENTGRADE DB 95,84,72,58,76,90,100,68,80,88 ;建立学生成绩表RANK DB 10
20、DUP(?) ;建立学生成绩名次的缓冲区KG DB ,$ ;显示两个空格DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATAS MOV DS,AX ;分配数据段地址XOR AX,AX ;对AX清零MOV DI,0 ;对DI置0 ;置学生成绩表首址WXH: MOV AL,BX ;将第一个学生成绩给AX ;将学生名次先置为1 ;设置循内环计数值MOV SI,OFFSET GRADE ;取比较学生成绩的第一个数NXH: CMP AL,SI ;两个学生成绩相比较 JAE NEXT ;若高于等于则跳转到NEX
21、T处 ;否则学生名次增1NEXT: INC SI ;取下一个相比较的学生成绩 ;判断CX是否为0 ;将学生名次存入地址单元 INC BX ;取下一个学生的成绩 INC DI ;外循环控制次数增1 ;外循环次数是否到10 JB WXH ;不到10进行循环,到10后结束 ;设置显示名次缓冲区首址 MOV CX,10 ;设置显示控制循环次数为10XS: ;将显示的名次给AL CMP AL,0AH ;名次与0AH(10)比较 JWE DY ;高于等于转移到DY ADD AL,30H ;转换成ASIIC码进行输出显示 ;显示名次 JMP KGF ;跳转到显示空格处DY: ;大于等于A的进行转换,并显示
22、MOV DL,AL MOV AH,02 INT 21HKGF: LEA DX,KG ;显示空格字符串 INT 21H LOOP XS HLTCODES ENDS ;程序结束 END START 在本程序数据段中变量GRADE的偏移首址是 ,RANK的偏移首址是 ,KG 的偏移首址是 。 程序运行后RANK单元的内容为: 。三、实验总结1、本实验程序中循环初始化部分的语句有 、 、 。循环结束部分的语句有 。内循环控制方式是 ,而外循环控制方式是 。2、十六进制数0F的ASCII码分别是30H、31H、32H、33H、34H、35H、36H、37H、38H、39H、 。数09所对应的ASCII码
23、与其数值之差(30-0、31-1、32-2、33-3、39-9)均是 ,而数AF对应的ASCII码与其数值之差( 41-A、42-B、43-C、44-D、45-E、46-F )均是 。3、标号通常由字母数字组成,但第一个字符必须是字母,最多允许使用 31 个字符。值得注意的是,编程员选用标号时,不能使用系统中已经定义过的符号名,如助记符、 、寄存器名等,否则将产生错误。本实验程序中所使用的标号有 等。4、谈一谈本次实验的心得体会(至少谈五点)。成绩实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:I/O扩展(244/273)实验一、实验预习内容
24、 1、本次实验是利用74LS244和74LS273的扩展电路来实现开关状态的输入和输出,用 做为输入信号,并用 来显示输出。74LS244为3态8位 ,一般用作总线驱动器。74LS273是8位数据/地址 ,它是一种带清除功能的8D触发器。2、74LS138是3/8线译码器,即用3个输入信号进行译码,得到 状态。 为译码信号输入端, 为译码输出端,低电平有效。3、74LS273的D0D7为8位数据输入端,接到数据总线上;Q0Q7为8位数据输出端,接到LED显示上,当开关拨到 时LED发亮。CLK为触发时钟输入端,由或门74LS32的两个输入端 来选通。当数据总线上的值撤销后,由于74LS273能
25、锁存信号,所以74LS273的输出端 ,直到有新的数据被锁存。 二、实验内容与过程 实验内容1、用244/273做I/O扩展实验。调试上机程序,并完善程序语句注释。CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;244/273扩展程序存放目标地址;PIO1 EQU 0FFE0H ; PIO2 EQU 0FFE4H ; P1: MOV DX,PIO1 ; IN AL,DX ;等待输入信号 MOV DX,PIO2 ; OUT DX,AL ;输出信号 JMP P1 ;循环等待CODE ENDS END P1 (1)74LS244的输入端P
26、I0PI7分别连接到逻辑电平开关单元的 开关上,74LS273的输出端PO0PO7分别连接到发光二极管显示单元的 上。 (2) 按电路图连接译码器74LS138的输入端A、B、C,其中A接到地址线上的 ,B连接到地址线上的 ,C连接到地址线上 。138控制输入端G接到地址线上对应的 端。 (3)74LS32为4-2输入或门电路,输入端1接到138的 上,2接到地址线区的IORD上,输出端3接到244芯片的 G 端口上;32门的输入端4接到138的 上,5接到地址线区的IOWR上,输出端6接到273芯片的CLK端口上。(4) 将244、273芯片旁的数据插座用 。 (5) 进入实验软件环境,输入
27、程序源文件,并进行检查。(6) 接通实验箱电源开关,进行通电。(7) 运行程序。(8) 拨动K1K8, 。 实验内容2:编制程序,利用273控制各种颜色LED的亮与灭。 拆掉244芯片的接线,保留273及138译码器的接线。参照实验内容1编程实现L1L8八路灯的同时亮与灭;编程实现L1L8中所有黄灯、绿灯、红灯,按照黄灯亮(其它灯来)、绿灯亮(其它灯灭)、红灯亮(其它灯灭)的顺序依次循环。 L1L8路灯同时亮、同时灭的程序如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;程序存放目标地址;PIO2 EQU 0FFE4H ;273
28、芯片字位控制字 P1: ;给AL赋值,使所有灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序 ;给AL赋值,使所有灯灭 ;选通273芯片接口 ;输出信号 ;调延时子程序JMP P1 ;循环DELAY: ;延时子程序YS: NOP LOOP YS RET CODE ENDSEND P1 L1L8中所有黄灯、绿灯、红灯,按照黄灯亮(其它灯灭)、绿灯亮(其它灯灭)、红灯亮(其它灯灭)的顺序依次循环程序如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;程序存放目标地址;PIO2 EQU 0FFE4H ;273芯片字位控制字 P1:
29、 ;给AL赋值,使所有黄灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序 ;给AL赋值,使所有绿灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序 ; 给AL赋值,使所有红灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序JMP P1 ;循环DELAY: ;延时子程序YS: NOP LOOP YS RET CODE ENDSEND P1 三、实验总结 1、 在Windows环境下,点击“Intel8088微机实验系统”进入实验系统前有一个选择,即选择通讯端口:一般情况下,串口选择 ,波特率选择 ,点击“确认”就可进入实验系统环境。 2、点击实验软件工具条中的“ ! ” 图标,进行
30、 ,在出现成功的对话框后点击“OK”框,则进入源文件调试状态。如果编译发现问题则在编辑画面下边显示出错信息,可根据 对源文件错误行修改其错误。 3、在工具条中点击所需运行的方式“”有三种: 。 4、在实验箱上进行接线、拆线一定要在 的情况下进行。成绩实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:8255A的输入/输出、方波实验一、实验预习内容 1、8255A是一种可编程并行 接口芯片,通过它可直接将CPU数据总路线与外部设备连接起来。8255A有3个8位数据端口,分别为端口 。它有三种工作方式,即 。2、8255A芯片有40个管脚,有三组端
31、口数据线分别是 和 。而引脚CS为 信号,低电平有效;当其信号有效时,8255A才能与CPU进行数据传送。引脚RD为读信号,低电平有效;当其有效时,CPU从8255A中读取 数据。引脚WR为写信号,低电平有效;当其有效时,CPU向8255A中写入 。RESET为复位信号,高电平有效;8255A复位后,所有内部寄存器包括控制字寄存器都被清零,3个数据端口被自动设置为 端口。A1、A0为端口选择信号,用来对8255A内部3个 和一个控制端口进行寻址;规定A1、A0为 时分别选中端口A、端口B和端口C,为 时选中的是控制端口。 3、8255A的控制字决定8255A的工作方式。而控制字是由CPU通过输
32、出指令写到8255A的控制端口的。其中D7=1是方式选择控制字的 , 位用来选取A组的工作方式; D4、D3 位用来选取 和 的输入/输出性质; 位用来选取B工作方式; 位用来选取端口B和 端口C低4位 的输入/输出性质。我们通常所说的对8255A进行初始化,就是通过D7D0位来设置8255A是哪种工作方式,以及4个端口是 还是 状态,这些设置必须把控制字写入到8255A的 口。 4、8255A在 下,两个8位端口A、B和两个4位端口中的任意一个端口,均可以作为输入或输出端口,且各端口均是 的;4个端口的输入或输出,可以有 种不同的组合;各端口输入时 锁存,输出时 锁存。 5、设8255A的方式控制字为D3H,并将A口和C口的高4位设置成输出,而B口和C口的低4位设置成输入,写出其程序指令: 二、实验内容与过程1、8255A的输入/输出实验。要求A口作为输入,B口作为输出。(1) 将开关K1K8端子分别接到8255A的A口的 上,将发光二极管L1L8分别接到B口的 上。 (2) 输入程序并调试运行。(3) 分别拨动钮子开关K1K8,观察LED的L1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论