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

编写计算表达式(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《深入浅出WPF》笔记——绑定篇(一)

上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之。怎么恢复数据的核心地位,那就要先了解一下Binding。 一、Binding 基础 1.1WPF中Data Binding的带来的方便 在设计架构的时间,大家…

你的代码完成了吗?(之二)——可维护性和规范性

二. 可维护性和规范性 对于代码来说,这两个属性其实是紧密相连的。什么样的代码最好维护呢?当然是规范的代码了。再差的规范也要比没有规范强得多。 之前做对日项目的时候,日本人对于“规范”这个东西(他们称之为开发规约&#xf…

c语言feof函数_使用示例的C语言中的feof()函数

c语言feof函数C语言中的feof()函数 (feof() function in C) Prototype: 原型: int feof(FILE* filename);Parameters: 参数: FILE *filenameReturn type: int(0 or 1) 返回类型: int(0或1) Use of function: 使用功能: In C l…

5种经典排序算法,每个程序员都应该知道

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 有没有想过当您应用从低到高、从高到低或按字母顺序等过滤器时,亚马逊或任何其他电子商务网站中的产品如何排序?排序算法对于此类网站起着至…

汇编语言-016(SCASB 、STOSB 、LODSD 、数组中的取值、二维数组操作、冒泡排序和二分查找、CMPSW )

1: SCASB : (字节)将AL的值与EDI寻址的一个字比较。进行在一个字符串检索特定的字符 .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data alpha BYTE "ABCDEFGH",0.code main PROCmov edi,OFFSET alpha ;EDI指向字符串mov …

编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。

编写一个汇编语言程序,将字符串"Hello World"中的全部小写字母转换为大写字母,并存放回原地址处。 P176 4.10 编程思路:首先DATA段中,定义string存放字符串"Hello World",LEN为字符串string长度…

在Python中使用OpenCV(CV2)对图像进行边缘检测

Modules used: 使用的模块: For this, we will use the opencv-python module which provides us various functions to work on images. 为此,我们将使用opencv-python模块,该模块为我们提供了处理图像的各种功能。 Download opencv-pytho…

需保留小数点两位,但同时不要小数点后多余0的前后台代码实现

今天碰到一个需求。关于小数点的处理,看起来非常简单的事情,却花了一定时间做了一些试验。最后简单总结一下,以便备忘。 需求简化一下表达是这样的: 有A、B两列,A/BC。这3列在数据库中都以decimal存放。 在应用中&…

汇编语言-017(SCASW 、STRUCT 、STRUCT_ALLPOINTS 、STRUCT_ALIGN 、SYSTEMTIME、UNION 、 STRUCTTEST )

1:SCASW : 在wordArray中扫描16位数值0100h,将匹配元素的偏移量复制到EAX .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data wordArray WORD 0500h,0400h,0300h,0200h,0100h.code main PROCmov ax,0100hmov edi,OFFSET wordArraymov …

【笔记】正则表达式[1]

元字符 符号 意思 示范 详例 \d 任意一个数字 \d{2}-\d{8} 22-12345678 * *前的符号重复任意次数 次数可以为零 \d* 222222222222... 或 2 \s 任意的空白符 全半角空格,tab,换行符 \bhi\b\s\bLucy\b hi Lucy 和*用法相似 次数>1 \d …

编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元

编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元中(假设这10个数的和值不超过16位范围) P176 4.12 编程思路&am…

prototype 的ajax

原文:http://www.prototypejs.org/learn/introduction-to-ajax]翻 译:www.ruby-china.cn 站长]Prototype框架提供了非常容易和有意思的方法处理Ajax的调用,同时它也是浏 览器安全的 。除了简单的请求外,这个模块(指pro…

汇编语言-018(FLD 、FST、FSTP、FCHS、FABS 、浮点运算符、浮点比较 )

1:FLD : FPU(浮点处理器)的加载浮点数到堆栈指令 .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data array REAL8 10 DUP(?) dblOne REAL8 234.56 dblTwo REAL8 10.1.code main PROCfld array …

mcq 队列_MCQ | 基础知识 免费和开源软件| 套装4

mcq 队列Q1. What do you call the technique of storing encrypted user passwords in Linux? Q1。 您如何称呼在Linux中存储加密的用户密码的技术? System Password Management 系统密码管理 Shadow Password 影子密码 Encrypted Password 加密密码 None of the…

将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。

将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。 P176 4.14 编程思路:首先用BX、DX存放AX,即原AX原BX原DX&…

一个很不错的wp企业站模板

http://zjuhpp.com/chinese-localization-of-business-wordpress-theme-devster.html转载于:https://www.cnblogs.com/i-kyle/archive/2012/09/13/2683817.html

著名的自由软件圣战- “KDE/QT .VS. Gnome/Gtk”

在 Unix 的图形界面一向是以 MIT 的 X Window 系统为标准, 可是在商业应用上有两大流派,一派是以 Sun 公司领导的 Openlook 阵营,一派是 IBM/HP 领导的OSF (Open Software Foundation) 的 Motif, 双方经过多年竞争之后&#xff0c…

汇编语言-019(汇编程序与c\c++相互调用)

1:在C程序中使用__asm块插入汇编代码程序(不能用LENGTHOF与SIZEOF运算符,而是LENGTH和SIZE) struct Package {long originZip; //4long destinationzip;//4float shippingPrice; //4 };int main(int argcount,char* args[]) {c…

kotlin 判断数字_Kotlin程序检查数字是偶数还是奇数

kotlin 判断数字Given a number N, we have to check whether it is EVEN or ODD. 给定数字N ,我们必须检查它是偶数还是奇数 。 Example: 例: Input:N 13Output:"ODD"Input:N 24Output:"EVEN"程序在Kotlin检查偶数或奇数 (Prog…

微机原理与接口技术(第2版)考点

第一章 1,微型计算机的特点: 功能强、可靠性高价格低廉系统设计灵活,适应性强体积小,重量轻,维护方便 2,微型计算机的硬件组成 微处理器内存储器I/O接口电路I/O设备系统总线 3,微机的工作过…