已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 算术运算类操作实验 (基础与设计)一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。6、掌握BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识本实验主要进行算术运算程序设计和调试,涉及到的知识点包括:1加减法处理指令主要有加法指令 ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。2乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW 和从字扩展到双字的指令CWD。3BCD 码的调整指令主要有非压缩的 BCD 码加法调整指令DAA,压缩的BCD 码减法调整指令DAS,非压缩的BCD 码加法调整指令AAA,非压缩的BCD 码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD 码调整指令AAD。8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令, 可对表 1 所示的数据类型进行数据运算。二进制 BCD码数制带符号 无符号 组合 非组合运算符 、 、 、操作数 字节、字、多精度 字节(二位数字) 字节(一位数字)表 1 数据类型数据运算表各指令的格式、功能及其对标志位的影响等细节知识,请同学们查阅相关书籍,这里不再赘述。四、实验内容与步骤1、对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:计 算 状态标志源代码如下:DATAS SEGMENT num1 dw 087h num2 dw 034h num3 dw 0c2h num4 dw 5Fh result1 dw 4 dup(?) result2 dw 4 dup(?) ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov bx,num2 mov ax,num1 add ax,bx mov result10,ax mov ax,num1 sub ax,bx mov result12,ax mov ax,num1 mul bx mov result14,ax mov ax,num1 div bx mov result16,ax mov bx,num4 mov ax,num3 add ax,bx mov result20,ax mov ax,num3 sub ax,bx mov result22,ax mov ax,num3 mul bx mov result24,ax mov ax,num3 div bx mov result26,ax mov AH,4CH INT 21HCODES ENDS END START运行结果如下:计算状态标志表达式结果cfafzfofsfpf087h+034h00bb010001087h-034h0053000000087h*034h1b6c000001087h/034h00020000010c2h+5fh01210100010c2h-5fh00630100010c2h*5fh47fe0100010c2h/5fh0247010001总结各运算对状态标志位的影响,及其意义。2、在数据段定义了两个多精度的有符号16 进制数,FIRST 和SECOND ,1)求两数的和与差,并将结果存放在THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH 为首地址的缓冲区中。试编程实现上述运算。FIRST DW 45 H,82H,96 H,57HSECOND DW 12 H,46H,83 H,45H16进制结果 10进制结果FIRST +SECONDFIRST SECOND源代码如下:DATAS SEGMENT first db 45h,82h,96h,57h second db 12h,46h,83h,45h third db 8 dup(?) forth db 8 dup(?);此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov cx,4 mov si,0 l1: mov al,firstsi mov bl,secondsi add al,bl mov thirdsi,al mov al,firstsi sub al,bl mov thirdsi+4,al inc si loop l1 mov cx,4 mov si,0 l2: mov al,firstsi mov bl,secondsi add al,bl daa mov forthsi,al mov al,firstsi sub al,bl das mov forthsi+4,al inc si loop l2 ;此处输入代码段代码 MOV AH,4CH INT 21HCODES ENDSEND START结果如下:前8个数据是first和second数组,后面紧接着8个数是first与second相加和想减的16进制结果,为57,c8,19,9c,33,3c,13,12;再接下来是10进制结果,为57,28,79,82,33,36,13,123、编程计算((Z +X*Y -328) -V)/ Y,其中X、Y、Z、V 均为16 位带符号数,假设初始数据分别装入X、Y、Z、V 单元,要求上式计算结果的商存入AX,余数存入DX 寄存器。将z的数值存入bx,并将bx加给ax将ax减去328将x的数值存入ax将y的数值存入dx流程图:将bx加给ax将v的数值存入bx,ax减去bx将y的数值存入bx将ax除以bx得出结果源代码如下:DATAS SEGMENT x dw 3fh y dw 0ffh z dw 2 v dw 34;此处输入数据段代码 DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风险投资决策支持系统构建
- 成本效益分析工具操作手册
- 2025有条件买卖合同样本
- 2025车间级安全教育试题及答案
- 2025年工程管理年终工作总结(2篇)
- 2025新款电器电子产品购销合同
- 2025标准版家庭护工劳动合同样本
- 《2025重型货车租赁协议》
- 2025企业间租赁合同范本
- 2025版私人委托合同书
- 政治经济学5章习题(有答案)
- 机器人工程大一职业规划书(8篇)
- 能量均分定理理想气体的内能
- 功能高分子04-电功能高分子材料
- 建筑企业管理制度大全-精品完整版
- GB/T 1185-2006光学零件表面疵病
- 锚杆工程隐蔽验收记录
- 2020年汽车物流企业组织结构及部门职责
- 混凝土原理与设计10压弯承载力课件
- 幼教培训课件:《家园共育体系建构与实施策略》
- 突发公共卫生事件健康教育与健康促进课件
评论
0/150
提交评论