ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:152.45KB ,
资源ID:17560581      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17560581.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理实验报告答案Word文件下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理实验报告答案Word文件下载.docx

1、MOV BX,0300HMOV SI,0002HMOV DI,0302HMOV AX,BX AX的内容: 0300 ; 寄存器寻址 MOV AX,0302H AX的内容: 0302 ; 立即寻址 MOV AX,DI AX的内容: 0D0C ; 寄存器间接寻址 MOV AX,BX AX的内容: 0B0A ; 基址寻址 MOV AX,0001BX AX的内容: 0C0B ; 基址加变址寻址 MOV AX,BXSI AX的内容:MOV AX,0002DI AX的内容: 000E ; 变址寻址 HLT (1)在汇编软件环境下,首先输入程序,并在建立的文件夹下进行保存;然后进行编译生成 目标文件 ,发现

2、问题进行编辑修改再进行编译;再进行链接生成 可执行文件 。(2)用 E 命令加带数据段物理地址 DS:0300 ,将偏移地址300H304H单元中连续按顺序装入 0A、0B、0C、0D、0E、0F 。 (4)用 T 命令单步跟踪执行程序,查看 AX 寄存器的内容,根据每条指令执行情况,记录其所存放的数据。2、把4000H单元的内容拆开,高位送4001H单元,低位送4002H单元。拆字程序清单如下,按要求在填空处完善注释。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV BX,4000H ;把地址单元4000H给BX寄存器 MO

3、V BX,5BH ; 把所要拆的字置为5BH MOV AL,BX ;把4000H单元的内容给AL MOV AH,AL ;再把4000H单元的内容给AH MOV CL,04 ; 设置移位数为4 SHR AH,CL ; AH的内容右移4位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AH ; 把高位字保存在4001H单元 AND AL,0FH ;屏蔽掉AL中的高四位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AL ; 把低位字保存在4002H单元 HLTCODES ENDS ;程序结束 END START 查看4000H起始的三个单元内容的命令

4、为 D DS:4000 ,从4000H起三个地址单元的保存的数据依次为: 5B、05、0B 。3、把2000H、2001H的单元的低4位拼成一个字,送入2002H单元(第一个字的低4位和第二个字的低4位拼成一个字)。完善程序,并用DEBUG进行调试。 MOV AX,DATAS MOV DS,AX MOV BX,2000H ;把地址单元2000H给BX寄存器 MOV BX,0F6H ;把2000H单元所要拼的字置为F6H MOV BX+1,28H ;把2001H单元所要拼的字置为28H把2000H单元的内容给AL MOV AH,BX+1 ;把2001H单元的内容给AH AND AL,0FH ;

5、MOV CL,04H ;设置移位次数为4 SHL AH,CL ;AH的内容左移4位 OR AL,AH ;进行拼字 ADD BX,02H ;地址单元到2002H MOV BX,AL ;将拼好的字保存在2002H单元 HLT END START使用 D DS:2000 命令查看存放在2000H单元起三个地址单元中的数据分别是: F6、28、86 。三、实验总结 1、汇编程序的调试过程有关问题:输入源程序代码并进行存盘;对文件进行 编译和链接 ,若发现错误可根据错误信息进行修改,直到无错为止;在DEBUG下,用相关命令进行查看、修改或执行汇编程序,常用的相关命令分别是 U、A、D、E、R、T、G、Q

6、 ; 在DEBUG下,程序运行的结果一般存放在相关 寄存器 中,或者存放在数据段 偏移地址 单元中。在显示结果中所看到的 NV、UP、EI、PL、NZ、NA、PO、NC 分别表示溢出、方向、中断、符号、零、辅助进位、奇偶、进位标志状态是复位状态。2、其它相关问题: 汇编程序保存的文件名(及文件夹)必须符合 DOS 命名要求,一般由26个英文字母和10个数字组成,文件名长度不准超过 8 个字符。输入程序代码指令其英文符号的 大写 或者 小写 输入都一样,而指令间该有的 空格 不能省略,其指令和标点符号必须是在 英文 状态下输入方可有效。程序代码和程序数据一般存放在不同的 段地址 下,若存在同一段

7、地址下,其偏移地址可不同,且偏移地址间要有一定的相隔空间。偏移地址从 0000H 开始,到最大 FFFFH 结束。3、所有移位指令的目标操作数,只允许是 8/16位通用寄存器戓存储器 ,指令中的计数值可以是常数1,即移位1次,如果移位多于1次,则必须将移位数N事先装入 CL 寄存器中,本指令最多可移位255位。一般来说,当目标操作数为无符号数时采用 逻辑移位 指令;若目标操作数为有符号数时,则采用 算术移位 指令。4、在逻辑运算指令中,仅 NOT 指令不影响标志位;其它指令 AND、OR、XOR 执行后,除AF状态不定外,总是使OF=CF=0,ZF、SF、PF则根据运算结果被置位或复位。微机原

8、理及接口技术 数据区移动与分支程序一、实验预习内容 1、8086/8088计算机指令一般由 操作码 和 一个或多个 操作数组成(无操作数指令除外)。根据操作数存放位置的不同,可将操作数分为三种类型 立即数、寄存器操作数和存储器操作数 。2、存储器操作数存放在内存的数据区,数据区的物理地址由 段地址和偏移地址 共同构成。大部分操作数的 段地址 由数据段寄存器 DS 的内容来确定。3、数据传送指令是计算机中最基本、最重要、最常用的一种指令,主要用来实现 存储器与寄存器、寄存器与寄存器以及立即数到寄存器或存储器 的字节或字的传送。在数据传送指令中,需要注意的是 源操作数和目的操作数的数据长度 必须保

9、持一致。4、传送指令MOV在使用时应注意: CS段寄存器 和 立即数 不能作为目的操作数;立即数传送到 存储器 时一定要与 存储器变量类型 一致;源操作数和目的操作数不能同时为 存储器操作数 。5、加法指令 ADD 和带进位加法指令 ADC 执行时会对标志位 AF、CF、OF、PF、SF、ZF 受影响。6、简单分支程序根据条件是否满足将程序分为 两个 分支,按不同条件做出相应的处理。这种程序往往是用 比较或测试 的方法,在 标志寄存器 中设置相应的标志位,然后再根据适当的 条件转移指令 实现不同情况的分支转移。7、条件转移指令可分为三类,在下列指令中适用于无符号数的条件转移指令助记符中是 JA

10、、JB、JAE、JNBE ;适用于有符号数的条件转移指令助记符是 JG、JL、JGE、JNL ;适用于标志位的条件转移指令助记符是 JC、JE、JZ、JNE 。 JA、JB、JC、JE、JG、JL、JZ、JAE、JGE、JLE、JNE、JNBE8、在条件转移指令中,指令助词符JAE和 JNB 、JG和 JNLE 、JLE和 JNG 、JZ和 JE 执行的结果是一样的。 1、把4100H源RAM区首址起的16字节数据传送到4200H目标RAM区。读懂程序,完善程序注释,用DEBUG调试并查看结果。MOV CX,010H ;置搬移数据循环次数 MOV SI,4100H ; 置源数据块首址 MOV

11、DI,4200H ; 置目的数据块首址 MOV BX,SI ;将源数据块首址给BX MOV DL,01HNUM: MOV BX,DL ;将16个数据存放在源数据块区 INC BX INC DL LOOP NUM MOV CX,010H ;置搬移数据循环次数 CMP SI,DI ;SI与DI相比较 JA L2 ; SIDI跳转到L2处 ADD SI,CX ;SI与CX相加 ADD DI,CX ;DI与CX相加L1: DEC SI ; 置源数据块末地址 DEC DI ; 置目的数据块末地址 MOV AL,SI ; 把源数据块末地址的数据搬移到目的数据块区域 MOV DI,AL LOOP L1 ;循

12、环16次结束 JMP HEND ;跳转到结束L2:把源数据块存储单元的数据传送到目的数据块 MOV DI,AL INC SI ; 源数据块地址增1 INC DI ; 目的数据块地址增1 LOOP L2 ;数据搬移16次后结束HEND:连续执行该程序的命令是 ,查看存放在4100H地址单元的数据命令是 ,查看存放在4100H地址单元的数据命令是 ,检查4100H4110H、4200H4210H中存储的数据为 。2、假设有一组数据为25,-4,0,3,100,-51,17,62。请编程判断:每个是数大于0,等于0,还是小于0,并输出Y的值。即: 1 当xy= 0 当x=0 -1 当x=0则转移到D

13、Y处XY0: MOV BL,-1 ;小于0将-1给BL MOV DI,BL ;将-1存储到地址单元 JMP XH ;跳转到XH处DY: JE XD ;若等于0转移到XD处 MOV BL,1将1给BL且存储到地址单元 JMP XH ;XD: MOV BL,0 ;给BL赋值为0将0存储到地址单元XH: INC SI ;数据表偏移地址增1 INC DI ;存放结果数据偏移地址增1 LOOP BJ ;判断CX是否为0,是则结束,否则进行循环CODES ENDS ;连续执行程序的命令是 ,查看存放在内存中的数据命令是 存放在数据段地址单元的结果是 1、段定义伪指令用于将源程序划分为若干个段。这些逻辑段按

14、照用途可分为 代码段、数据段、堆栈段 和附加段。需要说明的是,并不是所有程序都必须包含这四个逻辑段,可根据需要进行配置。每个 SEGMENT/ENDS 指令可定义一个逻辑段。段寄存器说明伪指令 ASSUME 向汇编程序指示当前各段所用的寄存器,并设定段寄存器与段的对应关系。2、存储器由许多存储单元组成,每一个存储单元可以存放一个8位二进制数,即 1字节 ,每一个存储单元都指定了一个惟一的编号,称之为 存储单元的地址 。存放程序代码的起始地址由 CS 寄存器来指定,存放程序所用数据的起始地址由 DS 寄存器来给定。程序在执行过程中的偏移地址是由 IP 寄存器来给定。 3、DB伪操指令用来定义字节

15、型变量,其中的每个操作数都占有 一个字节 存储单元,每个操作数的值不超过 255 。DW伪操指令用来定义字型变量,其中的每个操作数都占有 两个字节 ,字的低位字节存放在第一个字节地址单元中,字的高位字节存放在第二个字节地址单元中。DD伪操指令用来定义双字型变量,其中的每个操作数都占有 两个字(或4个字节) ,双字的最低位字节在第一个字节地址单元中,次低位字节在第二个字节地址单元中,次高位字节在第三个字节地址单元中,高位字节在第四个字节地址单元中。4、以CMP A,B示例说明比较指令功能用法如下:判断两个数操作数是否相等,可根据 ZF 标志位来判断,若 ZF=1 说明A=B;若 ZF=0 说明A

16、B。判断两个无符号操作数的大小,可根据 CF 标志位来判断,若 CF=1 说明AB;若 CF=0 说明AB。 循环程序设计1、在设计循环程序中,一般结构由循环 初始化 部分、 工作 部分、 控制 部分和 结束 部分。在循环开始前首先应建立 地址指针、计数器 和其它循环参数的起始值等。控制循环是循环程序设计中最重要的一个环节,这部分用于控制重复执行的次数,包括修改 变量 和 指针 ,为下一次循环做好准备,以及修改循环计数器,判断循环结束条件是否满足,若条件满足则退出循环,否则继续循环。最常见控制循环的两种方式是 计数法 和 条件控制法 。值得指出的是,循环程序的前后两部分只能执行一次,而循环主体

17、部分不能出现转向建立循环参数起始值部分,否则会造成程序 死循环 ,或者得不到预期结果。2、设计多重循环程序时,可以从 外层 循环到 内层 循环一层一层的进行。需要注意的是,多重循环可以嵌套,但不能 交叉 。此外,转移指令可以从循环结构内向外转出,但不能从 外 循环直接跳进 内 循环。3、常用计数循环控制指令LOOP 目标号,首先得把循环计数值赋给 CX 寄存器,当执行到LOOP指令时,先做 CX-1CX ,再进行判别,当 CX0 转移到目标号继续循环,直到 CX=0 退出循环。二、实验内容与过程以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK数组,并根据GRAD

18、E中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于成绩高于该学生的人数之和再加1)。寄存器分配情况说明如下:AX存放当前被测学生的成绩BX存放当前被测学生的相对地址指针CX内循环计数值DX存放当前被测学生的名次计数值SI内循环测试时的地址指针DI外循环计数值按要求编程,计算学生排名,并输出排名结果:GRADE DB 95,84,72,58,76,90,100,68,80,88 ;建立学生成绩表RANK DB 10 DUP(?) ;建立学生成绩名次的缓冲区KG DB ,$ ;显示两个空格ASSUME CS:MOV AX,DATAS MOV DS,AX ;分配数据段地址XOR A

19、X,AX ;MOV DI,0 ;对DI置0LEA BX,GRADE ;置学生成绩表首址WXH: MOV AL,BX ;将第一个学生成绩给AXMOV DL,1 ;将学生名次先置为1MOV CX,10 ;设置循内环计数值MOV SI,OFFSET GRADE ;取比较学生成绩的第一个数NXH: CMP AL,SI ;两个学生成绩相比较 JAE NEXT ;若高于等于则跳转到NEXT处 INC DL ;否则学生名次增1NEXT:取下一个相比较的学生成绩 LOOP NXH ;判断CX是否为0 MOV RANKDI,DL ;将学生名次存入地址单元 INC BX ;取下一个学生的成绩外循环控制次数增1 C

20、MP DI,10 ;外循环次数是否到10 JB WXH ;不到10进行循环,到10后结束 LEA BX,RANK ;设置显示名次缓冲区首址 MOV CX,10 ;设置显示控制循环次数为10XS: MOV AL,BX ;将显示的名次给AL CMP AL,0AH ;名次与0AH(10)比较 JAE DY ;高于等于转移到DY ADD AL,30H ;转换成ASIIC码进行输出显示 MOV DL,AL MOV AH,02 INT 21H ;显示名次 JMP KGF ;跳转到显示空格处 ADD AL,37H ;大于等于A的进行转换,并显示 MOV DL,AL MOV AH,02 INT 21HKGF:

21、 LEA DX,KG ;显示空格字符串 MOV AH,09 INC BX LOOP XS HLT在本程序数据段中变量GRADE的偏移首址是 0000 ,RANK的偏移首址是 000A ,KG 的偏移首址是 0014 。程序运行后RANK单元的内容为: 3 5 8 A 7 2 1 9 6 4 三、实验总结1、本实验程序中循环初始化部分的语句有 XOR AX,AX 、 MOV DI,0 、 LEA BX,GRADE 。循环结束部分的语句有 MOV RANKDI,DL、INC BX、INC DI 。内循环控制方式是 计数法 ,而外循环控制方式是 条件控制法 。2、十六进制数0F的ASCII码分别是3

22、0H、31H、32H、33H、34H、35H、36H、37H、38H、39H、 41H、42H、43H、44H、45H、46H 。数09所对应的ASCII码与其数值之差(30-0、31-1、32-2、33-3、39-9)均是 30H ,而数AF对应的ASCII码与其数值之差( 41-A、42-B、43-C、44-D、45-E、46-F )均是 37H 。3、标号通常由字母数字组成,但第一个字符必须是字母,最多允许使用 31 个字符。值得注意的是,编程员选用标号时,不能使用系统中已经定义过的符号名,如助记符、 定义符、操作符、运算符、寄存器名等,否则将产生错误。本实验程序中所使用的标号有 STR

23、AT、WXH、NXH、NEXT、XS、DY、KGF 等。4、谈一谈本次实验的心得体会。I/O扩展(244/273)实验1、本次实验是利用74LS244和74LS273的扩展电路来实现开关状态的输入和输出,用 扭子开关 做为输入信号,并用 发光二极管LED 来显示输出。74LS244为3态8位 缓冲器 ,一般用作总线驱动器。74LS273是8位数据/地址 锁存器 ,它是一种带清除功能的8D触发器。2、74LS138是3/8线译码器,即用3个输入信号进行译码,得到 8个输出 状态。 A、B、C 为译码信号输入端, Y0Y7 为译码输出端,低电平有效。3、74LS273的D0D7为8位数据输入端,接到数据总线上;Q0Q7为8位数据输出端,接到LED显示上,当开关拨到 低电平 时LED发亮。CLK为触发时钟输入端,由或门74LS32的两个输入端 Y1、 WR 来选通。当数据总线上的值撤销后,由于74LS273能锁存信号,所以74LS273的输出端 保持不变 ,直到有新的数据被锁存。 实验内容1、用244/273做I/O扩展实验。调试上机程序,并完善程序语句注释。CODE SEGMENTC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1