编写计算表达式(X-Y+25)/Z的值得程序,要求将其商和余数分别放在A、B单元中。(设X和Y是32位无符号数,A、B和Z是16位无符号数,不考虑溢出情况。)

P151
例4.8

汇编思路:首先在DATA段定义X、Y、Z、A、B单元,其中由于X、Y是32位无符号数,所以类型定义为DD,Z定义为DW类型,A、B用于存放最后结果的商和余数部分,均定义为DW类型。STACK段,开辟50DB大小的运算存储空间。CODE段,由于X的类型为DD,所以需要使用修改属性运算符PTR指定位于其后的存储器操作数的类型,先将X的低字内容存放到AX中,然后AX与Y相减,即AX存放(X-Y)的低字内容部分;然后,DX存放X的高字内容,由于X的类型为DD,即指向下一个字需要+2,且也要使用修改属性运算符PTR指定位于其后的存储器操作数的类型。然后让AX低字内容+25,完成(X-Y+25)的低字内容运算的最终结果,使用ADC AX,0;使用带进位的加法指令,因为AX在与25相加的时候有可能存在进位现象,需要使用ADC带进位的加法指令。最终,AX存放低字部分内容,DX存放高字部分内容。然后,开始除Z,DIV Z;由于是无符号数,所有除法运算使用无符号数除法指令DIV,即隐含被除数为DX(高字),AX(低字),除数为Z,最后商存放在AX中,余数存放在DX中,AX赋值给A,DX赋值给B。最后调用4CH号功能返回到DOS系统,程序结束。

代码如下:

DATA SEGMENT
X   DD  334467ABH   ;随机的数
Y   DD  0DF342189H  ;随机的数
Z   DW  5476H       ;随机的数
A   DW  ?           ;用于存放最后结果的整数部分,即除完之后的商
B   DW  ?           ;用于存放最后结果的小数部分,即除完之后的余数
DATA    ENDS
STACK   SEGMENT STACKDB 50  DUP(0)  ;使用stack栈,开辟一段运算空间(大小为50DB)
STACK   ENDS
CODE    SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK
START:  MOV AX,DATAMOV  DS,AXMOV    AX,WORD PTR X   ;由于X定义为DD类型即2个字,这里将X的低字内容赋值给AXSUB    AX,WORD PTR Y   ;AX与Y的低字内容相减,即X和Y的低字内容相减,最后存放在AX中MOV  DX,WORD PTR X+2    ;X和Y均是DD类型,高字内容需要+2,即将X的高字内容赋值给DXSBB DX,WORD PTR Y+2    ;X和Y均是DD类型,此时的DX为X所对应高字内容,因为要考虑到低字内容运算时是否借位\进位,所有用SBB带借位的减法指令 即X的高字内容-Y的高字内容ADD    AX,25           ;X-Y+25 让AX低字内容加,因为25相加应该从低位相加,而不是让DX高字内容加ADC    DX,0            ;因为需要考虑到进位的问题,这里使用带进位的加法指令ADC,使得DX加上进位,DX最终存放的是(X-Y+25)高字内容DIV  Z               ;因为X和Y都是无符号数,所以,除法运算使用无符号数除法指令DIV运算,(DX高位与AX低位)/Z --- AX存放商,DX存放余数MOV A,AX            ;AX存放的商保存到A中MOV B,DX            ;DX存放的余数保存到B中MOV    AH,4CH          ;调用4CH号功能,返回DOS操作系统指令INT 21H             ;终止当前程序的运行,并返回DOS系统
CODE    ENDSEND START

编写计算表达式(X-Y+25)/Z的值得程序,要求将其商和余数分别放在A、B单元中。(设X和Y是32位无符号数,A、B和Z是16位无符号数,不考虑溢出情况。)相关推荐

  1. jsp+Servlet+javaBean编写计算体重指数测量(BMI)的简单程序

    jsp+Servlet+javaBean编写计算体重指数测量(BMI)的简单程序 BMI.java(javaBean代码) public class BMI { private double bmi, ...

  2. 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数

    课本例题 /*输入两个正整数num1.num2,计算并输出它们的和.差.积.整数商和余数.*/ #include<stdio.h> int main() {int num1, num2;p ...

  3. 16位浮点 c语言,C语言中的16位浮点乘法

    我正在开发一个小项目,我需要浮点乘法和16位浮点数(半精度).不幸的是,我遇到了算法的一些问题: 示例输出 1 * 5 = 5 2 * 5 = 10 3 * 5 = 14.5 4 * 5 = 20 5 ...

  4. 修改计算机显示颜色16位色,教你win10怎么调成16位色

    我们电脑屏幕图像是由像素组成的,色味就是每个像素点上颜色的数据位数,我们所说的16位色是指由2的16次方种颜色组成.下面,我就给大家介绍一下win10调节成16位色的方法 win10系统相较于其他系统 ...

  5. 微型计算机地址总线是16位,某微型计算机的地址总线的位数是16位,最大的寻址空间可为()。A.32KBB.64KBC.128KBD.256KB...

    某微型计算机的地址总线的位数是16位,最大的寻址空间可为().A.32KBB.64KBC.128KBD.256KB 更多相关问题 [单选题]混凝土自吊斗口下落的自由倾落高度不得超过( ). 可用白色升 ...

  6. 16位转10位c语言,10进制数转换为16位二进制数

    写在前面: 题解是对具体题目的编程实现,不会具体讲解C语言语法.请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~).在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以 ...

  7. oracle number 16位,loopback-connector-oracle 主键Number类型长度为16位以上查询不到数据解决方法...

    历史遗留问题,oracle表中主键Number类型,有13,14,15,16位长度主键,用loopback查询,如果主键16位长度的,查询不到数据.纠结了几天,修改以下代码解决了.粗暴的决绝方法 /* ...

  8. 汇编语言---计算表达式的值

    汇编语言---计算表达式的值 配置环境 实现的功能 编辑程序 运行程序 后续 配置环境 首先双击下载程序进行下载.(没有安装程序的,可以下载我为大家准备的安装文件.) 不会安装的可以看一下文件 将de ...

  9. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

最新文章

  1. 大学毕业想要转行学软件测试,怎样入门比较好?
  2. erlang r19里面的mnesia_ext
  3. swift语言java_用Swift语言替换#ifdef
  4. 二叉树的相关性质及其前中后层序遍历实现
  5. 使用python+ffmpeg批量转换格式
  6. centos 6.5 安装 lamp 后mysql不能启动_CentOS 6.5 系统 LAMP(Apache+MySQL+PHP)安装步骤
  7. 广联达文件被锁怎么修复_事无巨细的绕过Apple id教程+修复蜂窝数据/电话
  8. 实现二叉排序树的各种算法
  9. html加了文档声明之后页面错乱,为登陆页面扩展和配置设计导入程序
  10. 兔子--R.java丢失原因及解决的方法
  11. 计算机辅助几何设计等值曲线,中国科学技术大学硕士专业:计算机辅助几何设计...
  12. 第四十二章 SQL函数 DATEADD
  13. 详解 torch.max 函数
  14. 计算机保研er去清华计算法学怎么样?
  15. EXCEL表格-数据验证报错弹窗制作
  16. MySQL数据库学习笔记3
  17. windows10系统桌面图标小盾牌去除方法
  18. 【物理应用】基于Matlab实现LBM-D2Q9模型粗糙界面流动
  19. 【教程】在Steam Deck上安装系统引导软件rEFInd
  20. 【Iceberg+Alluxio】助力加速数据通道(上篇)

热门文章

  1. 数控弯管机xyz转换ybc的算法_花了一年时间开发的三维弯管机交互式转档软件(三维管子模型UG,SOLIDWORK,PRO/E文件转成YBC)...
  2. 我对CSS选择器的认识
  3. Android N 新特性 + APP开发注意事项
  4. mysql 5.1由于Host为localhost的用户为空,密码为空,导致本地用户无法登陆。
  5. 64位CentOS6.2安装erlang及rabbitmqServer
  6. recovery编译问题汇总
  7. POJ 3189 Steady Cow Assignment
  8. 一个把图片保存到SQL数据库的工具
  9. 微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework
  10. 随机森林和gbdt结合_决策树与迭代决策树(GBDT)