




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科实验报告 实验名称 实验名称 实验二 算术运算类操作实验 基础与设计 课程名称 CPU 与汇编实验 实验时间 任课教师 实验地点 实验教师 学生姓名 实验类型 原理验证 综合设计 自主创新 学号 班级 组 号 无 学 院 信息与电子 同组搭档 无 专 业 信息工程 成 绩 一 实验要求和目的一 实验要求和目的 1 了解汇编语言中的二进制 十六进制 十进制 BCD 码的表示形式 2 掌握各类运算类指令对各状态标志位的影响及测试方法 3 熟悉汇编语言二进制多字节加减法基本指令的使用方法 4 熟悉无符号数和有符号数乘法和除法指令的使用 5 掌握符号位扩展指令的使用 6 掌握 BCD 码调整指令的使用方法 二 软硬件环境二 软硬件环境 1 硬件环境 计算机系统 windows 2 软件环境 装有 MASM DEBUG LINK 等应用程序 三 实验涉及的主要知识三 实验涉及的主要知识 1 加减法处理指令 2 乘除法指令和符号位扩展指令 3 BCD 码的调整指令 四 实验内容四 实验内容 一 一 对于两组无符号数 087H 和034H 0C2H 和5FH 试编程求这两组数的和差积商 并考虑计算结果对标志寄存器中状态标志位的影响 计算状态标识 表达式结果 H CFAFZFOFSFPF 087H 034H00BB000001 087H 034H0053000001 087H 034H1B6C000001 087H 034H0002 1F 000001 0C2H 5FH0121010001 0C2H 5FH0063010001 0C2H 5FH47FE010001 0C2H 5FH0002 04 010001 1 流程图流程图 2 程序代码 程序代码 DATAS SEGMENT DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX MOV AX 0C2H MOV BX 5FH ADD AX BX add MOV AX 0C2H MOV BX 5FH SUB AX BX sub MOV AX 0C2H MOV BX 5FH 开始 结束 将两组数据分别存入 AX BX 中 将二者中的 数据相加 存入 AX 中 将两组数据分别存入 AX BX 中 用 AX 中数 据减去 BX 中数据 存入 AX 中 将两组数据分别存入 AX BX 中 将二者中的 数据相乘 存入 AX 中 将两组数据分别存入 AX BX 中 用 AX 中数 据除以 BX 中数据 存入 AX 中 MUL BX mul MOV AX 0C2H MOV BX 5FH DIV BX div MOV AH 4CH INT 21H CODES ENDS END START 将数据改变得到另一组输出结果 3 实验结果实验结果 以第一组数的加法为例 已将截图以上输入 t 进行 debug 的步骤省略 此时右下角信息 NV UP 代表标志寄存器的值 4 结果分析 结果分析 由资料可得 1 CF carry flag 进位标志位 运算结果需要进位为 1 不需进位为 0 2 PF parity flag 奇偶标志位 当运算结果的低 8 位中的 1 的个数为偶数时 PF 1 为奇数 时 PF 0 3 AF auxiliary flag 辅助进位标志 第 3 位有进位为 1 无进位为 0 4 ZF zero flag 零标志位 当运算结果为零时 ZF 1 否则 ZF 0 5 SF sign flag 符号标志位 当运算结果的最高位为 1 时 SF 1 否则 SF 0 6 OF overflow flag 溢出标志位 当算术运算结果超出了带符号数的范围 即溢出时 OF 1 否则 OF 0 其中注意在本程序中 SUB 影响全部的条件标志 1 减法的 CF 反应的是无符号数运算中的借位情况 当减数 被减数是 CF 1 否则 CF 0 2 OF 如果两个数的符号相反而结果的符号与减数相同 则 OF 1 否则 OF 0 3 SF 运算结果 0 为 1 否则为 0 ZF 零标志 AF 辅助进位标志 PF 奇偶标志 根据其含义设置 二 二 在数据段定义了两个多精度的有符号16 进制数 FIRST 和SECOND 1 求两数 的和与差 并将结果存放在THIRD 为首地址的缓冲区中 2 如果把两组数据当作十进制数 据来处理 再次求两数的和与差 并将结果存放在FORTH 为首地址的缓冲区中 试编程实 现上述运算 FIRST DW 45H 82H 96H 57H SECOND DW 12H 46H 83H 45H 16 进制结果10 进制结果 FIRST SECOND00 57 C9 19 9CH00 58 29 80 02D FIRST SECOND00 33 3C 13 12H00 33 36 13 12D 1 流程图流程图 十六进制减法及十进制显示部分略 十进制加法前设置寄存器值为 SI 0 DI 0 CX 3 在每步相加后用 DAA 显示为十进制数 十进制加法前设置寄存器值为 SI 0 DI 5 CX 3 在每步相减后用 DAS 显示为十进制数 否 SI DI CX 均自减 1 将 FIRST SI 3 与 SECON D SI 3 存入 AL BL 带 进位相加 再加上 CF 的值 结果存入 THIRD DI 4 中 设定寄存器初始值 SI 0 DI 0 CX 3 作为 计数器 开始 取值 是否加到最高 位 CX 0 将 AX 值强制显示在 THIRD DI 4 中 若有 高位则存入 THIRD DI 5 带进位相加存入 AX 将 FIRST SI 3 与 SECO ND SI 3 存入 AL BL 单字节扩展为双字节 设置寄存器值为 SI 0 DI 5 CX 3 是 2 程序代码 程序代码 DATAS SEGMENT FIRST DB 45H 82H 96H 57H SECOND DB 12H 46H 83H 45H THIRD DB 10 DUP 注意保证数组空间足够大 FORTH DB 10 DUP DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX MOV SI 0 MOV DI 0 MOV CX 3 设置寄存器值 作为计数器 L1 十六进制显示加法 MOV AL FIRST SI 3 MOV BL AL MOV AL SECOND SI 3 ADC AL BL MOV THIRD DI 4 AL DEC SI DEC DI DEC CX JNZ L1 若CX不为零 则未到最高位 循环 DEC DI CX为零 跳出循环 MOV AL FIRST SI 3 CBW 扩充 符号位存入AH MOV BX AX MOV AL SECOND SI 3 CBW ADC AX BX MOV WORD PTR THIRD DI 4 AX 将AX强制显示 即高位存入下一位 MOV DI 5 重置寄存器值 避开加法结果位置 MOV SI 0 MOV CX 3 L2 十六进制显示减法 MOV AL FIRST SI 3 MOV BL SECOND SI 3 SBB AL BL MOV THIRD DI 4 AL DEC SI DEC DI DEC CX JNZ L2 DEC DI MOV AL FIRST SI 3 CBW MOV BL SECOND SI 3 CBW SBB AX BX MOV WORD PTR THIRD DI 4 AX MOV DI 0 MOV SI 0 MOV CX 3 L3 十进制显示加法 MOV AL FIRST SI 3 MOV BL AL MOV AL SECOND SI 3 ADC AL BL DAA 显示为十进制 MOV FORTH DI 4 AL DEC SI DEC DI DEC CX JNZ L3 DEC DI MOV AL FIRST SI 3 CBW MOV BX AX MOV AL SECOND SI 3 CBW ADC AX BX DAA MOV WORD PTR FORTH DI 4 AX MOV DI 5 MOV SI 0 MOV CX 3 L4 十进制显示减法 MOV AL FIRST SI 3 MOV BL SECOND SI 3 SBB AL BL DAS MOV FORTH DI 4 AL DEC SI DEC DI DEC CX JNZ L4 DEC DI MOV AL FIRST SI 3 CBW MOV BL SECOND SI 3 CBW SBB AX BX DAS MOV WORD PTR FORTH DI 4 AX MOV AH 4CH INT 21H CODES ENDS END START 3 调试结果调试结果 4 结果分析结果分析 1 CWB 为扩充 符号位置于 AH 2 将 AX 放入 THIRD 中时 由于 AX 为 WORD 型 THIRD 为 BYTE 型 故需要 PTR 指令 3 最高位相加时 将进位结果强制存入数组 结果如图显示 第二位 00 为最高位进位 结果 三 编程计算 Z X Y 328 V Y 其中X Y Z V 均为16 位带符号数 假设初始 数据分别装入X Y Z V 单元 要求上式计算结果的商存入AX 余数存入DX 寄存器 同 学自行给出初始值加以验证程序 1 流程图流程图 2 程序代码程序代码 DATAS SEGMENT X DW 0FF3H Y DW 1117H Z DW 000FH V DW 5B12H DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX MOV AX X IMUL Y x y 保存在DX AX中 MOV CX AX 开始 结束 计算 x y 取值 计算 x y z 计算 x y z 328 计算 x y z 328 v 计算 x y z 328 v y MOV BX DX 此时DX AX存入BX DX中 MOV AX Z 扩展 存入AX CWD ADD CX AX ADC BX DX SUB CX 328 SBB BX 0 MOV AX V
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030全球及中国制鞋服务行业发展趋势分析与未来投资战略咨询研究报告
- 数据结构课程期末在线考核试题库
- 2025-2030中国燃气PE管材行业产能过剩风险预警与对策报告
- 2025-2030中国母婴用品电商平台用户画像与复购率分析报告
- 2025-2030中国智能仓储穿梭机器人系统效率提升与仓储改造痛点研究报告
- 2025-2030中国新能源汽车市场供需格局与竞争战略规划报告
- 2025-2030中国数据中心建设现状及未来发展规划分析报告
- 2025-2030中国抗生素行业市场供需格局与投资机会分析报告
- 2025-2030中国心脑血管用药行业分析及发展战略规划报告
- 2025年初中学业水平考试地理模拟卷及答案:乡土地理特色解析试题卷
- 资阳产业投资集团有限公司第三轮一般员工市场化招聘笔试参考题库附答案解析
- 2025年淮南市大通区和寿县经开区公开招聘社区“两委”后备干部30名笔试备考题库及答案解析
- 《文献检索与科技论文写作入门》课件(共八章)
- 2025云南红河红家众服经营管理有限公司社会招聘工作人员8人笔试参考题库附带答案详解
- DL-T 794-2024 火力发电厂锅炉化学清洗导则
- 天津市受问责干部管理办法
- 内科进修汇报护理
- 口腔咨询师沟通技巧培训
- T/CSWSL 004-2018饲料原料酿酒酵母发酵白酒糟
- 双五归零方法实施培训
- 人教版2024年新版七年级上册英语Starter Units 1-3综合测试卷(含答案)
评论
0/150
提交评论