已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。

已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。

P160
例4.17

汇编思路:DATA段,定义BUF存储区,定义一下DB类型的数据,N为定义数据的总个数,ZNUM用于存放最后的正数个数。STACK段,开辟一段大小为100DB的堆栈段的存储空间,用于进行运算。CODE段,首先让BX获取到BUF的有效地址,CX获取到N的值,用于循环,对AX清零,目的用于记录正数个数,然后,将BX的内容以次与0相比较,若结果为>=0(通过JLE判断),AX自加,否则BX自加,如果通过LOOP跳回到上一步再次进行下一个数据的判断,直到最后CX的值为0结束,然后再将AX统计到的正数的个数赋值给ZNUM,然后调用4CH号功能,返回DOS系统,程序结束。

代码如下:

DATA 	SEGMENT
BUF		DB 3,5,2,7,0,-1,-7,9,-4,8;随机的几个存放在BUF为首址的一些数据
N 		EQU $-BUF	;N表示数据的总个数
ZNUM 	DW ?		;ZNUM用于存放最后的统计个数
DATA 	ENDS
STACK	SEGMENT STACKDB 100 DUP(?);在堆栈段开辟了一段100DB大小的用于运算的存储空间
STACK 	ENDS
CODE 	SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK
START:	MOV AX,DATAMOV DS,AX	LEA BX,BUF	;去有效地址指令LEA,将BUF的地址赋值给BXMOV CX,N	;CX存放数据的总个数,用于循环使用XOR AX,AX	;AX清零,用于存放正数的个数
L1:		CMP BYTE PTR[BX],0;存储器操作数需要使用修改属性运算符PTR来指定位于其后的存储器操作数的类型为BYTE类型,判断数据是否为0JLE L2		;JLE小于或等于转移,即若上条指令结果<=0,跳转到L2标签处,否则执行下一条指令 即>0执行下一条指令,<=0跳转到L2标签处INC AX		;若执行到此条指令,表示数据为正数,AX自加
L2:		INC BX		;BX+1,即操作进行判断下一个数据LOOP L1		;无条件跳转到L1标签处,CX-1,再次跳转到L1标签处时,由于BX已经+1,此时再判断的就是下一个数据了,直到CX的值为0,即所有数据已经都判断完毕之后结束循环MOV ZNUM,AX	;将AX用于存放整数的个数赋值给ZNUMMOV AH,4CH	;调用4CH号功能,返回DOS操作系统INT 21H		;终止当前程序的运行,并返回DOS系统
CODE 	ENDSEND START

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

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

相关文章

静态链表(代码、分析、汇编)

目录&#xff1a;代码&#xff1a;分析&#xff1a;汇编&#xff1a;代码&#xff1a; StaticList.h #ifndef _STATICLIST_H_ #define _STATICLIST_H_typedef void StaticList; //空类型静态表类型可以接收任何类型的静态表类型 typedef void StaticListNode;//空类型节点类型…

c语言 typedef_C Typedef-能力倾向问题与解答

c语言 typedefC programming Typedef Aptitude Questions and Answers: In this section you will find C Aptitude Questions and Answers on typedef topics, defining/changing name of any data type, using and accessing the typedef values. C编程Typedef Aptitude问答&…

ios程序 调试log宏的添加

#ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog("%-%", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG(...) ; # define LOG_CURRENT_METHOD ; #endif 使用 LOG_CURRENT_METHOD; NS…

Python的线程池实现

代码 1 #coding:utf-82 3 #Python的线程池实现4 5 importQueue6 importthreading7 importsys8 importtime9 importurllib10 11 #替我们工作的线程池中的线程12 classMyThread(threading.Thread):13 def__init__(self, workQueue, resultQueue,timeout30, **kwargs):14 threadin…

编程统计BUF字单元数据中所含1的个数,并将结果存入COUNT单元中。

编程统计BUF字单元数据中所含1的个数&#xff0c;并将结果存入COUNT单元中。 代码如下&#xff1a; DATA SEGMENT BUF DW 2345H ;随机存储一下数据 COUNT DB ? ;用于统计BUF字单元数据中所含1的个数 DATA ENDS STACK SEGMENT STACKDB 100 DUP(?);在堆栈段开辟一段大小为1…

循环链表(代码、分析、汇编)

目录&#xff1a;代码&#xff1a;分析&#xff1a;汇编&#xff1a;代码&#xff1a; CircleList.h #ifndef _CIRCLELIST_H_ #define _CIRCLELIST_H_typedef void CircleList;typedef struct _tag_CircleListNode CircleListNode;struct _tag_CircleListNode{CircleListNode…

Java Throwable setStackTrace()方法与示例

Throwable类setStackTrace()方法 (Throwable Class setStackTrace() method) setStackTrace() Method is available in java.lang package. setStackTrace()方法在java.lang包中可用。 setStackTrace() Method is used to sets stack trace elements that will be retrieved by…

IOS中设置全局变量

转&#xff1a;http://blog.csdn.net/totogogo/article/details/7355203 有几种方法 some developers recommend use singleton patter (ref link http://blog.csdn.net/kmyhy/article/details/7026511) 方法1&#xff1a;使用静态变量 (不推荐&#xff09; 方法2&#xff1a; …

设计模式之Observer

观察者模式可以参考邮件订阅的例子 邮件订阅设计到2个主要角色&#xff0c;一个是订阅者(观察者)&#xff0c;一个是发布者 发布者可以拥有一个观察者的集合&#xff0c;可以添加&#xff0c;删除观察者&#xff0c;当发布者发布一个新的消息时&#xff0c;要邮件通知观察者集合…

编写一个程序,计算|X-Y|的值,并将结果存入RESULT单元中,其中X和Y都为带符号字数据。

编写一个程序&#xff0c;计算|X-Y|的值&#xff0c;并将结果存入RESULT单元中&#xff0c;其中X和Y都为带符号字数据。 P154 例4.11 汇编思路:DATA段定义X、Y、RESULE分别用于存放随机数、存放随机数、存放最后计算结果。STACK段定义100DB大小的堆栈段运算存储空间。将AX获取…

java timezone_Java TimeZone inDaylightTime()方法及示例

java timezoneTimeZone类inDaylightTime()方法 (TimeZone Class inDaylightTime() method) inDaylightTime() method is available in java.util package. inDaylightTime()方法在java.util包中可用。 inDaylightTime() method is used to check whether the given date (d) is…

这几天好像博客登不上去 什么情况

这几天好像博客登不上去 什么情况 我多年的心情记录啊 还以为关掉了 。。。。。。。 今天很生气&#xff0c;麻痹 转载于:https://www.cnblogs.com/cloud/archive/2010/04/25/1720744.html

双向链表(代码、分析、汇编)

目录&#xff1a;代码&#xff1a;分析&#xff1a;汇编&#xff1a;代码&#xff1a; DLinkList.h #ifndef _DLINKLIST_H_ #define _DLINKLIST_H_typedef void DLinkList; typedef struct _tag_DLinkListNode DLinkListNode; struct _tag_DLinkListNode {DLinkListNode* nex…

[道理]关于人生的,很不错!

[道理]关于人生的&#xff0c;很不错&#xff01; 心理学课上&#xff0c;周正教授正在授课&#xff1a;“上次下课时&#xff0c;一个男孩子递了张纸条&#xff1a;我是个比较内向的人&#xff0c;又没什么特长&#xff0c;不会踢足球&#xff0c;不会打篮球……唯一的爱好是写…

变量和简单数据类型(一)

1&#xff0c;title()方法 将字符串中的每个单词的首字符大写 2&#xff0c;upper()方法 将字符串的所有字母大写 3&#xff0c;lower()方法 将字符串的所有字母小写 name "beyond Sq" print(name.title()) print(name.upper()) print(name.lower())调用方式&…

long类型20位示例_Java Long类lowerOneBit()方法与示例

long类型20位示例长类lowerOneBit()方法 (Long class lowestOneBit() method) lowestOneBit() method is available in java.lang package. minimumOneBit()方法在java.lang包中可用。 lowestOneBit() method is used to find at most only single 1’s bit from the rightmost…

VS2010安装、启动都挺快的,真不错

截图留念&#xff0c;里面的源码是《把脉VC》一书的示例工程。 转载于:https://www.cnblogs.com/silentmj/archive/2010/04/29/1723940.html

hdu 1712

地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1712 题意&#xff1a;复习课程&#xff0c;n们课&#xff0c;有m天复习&#xff0c;a[i][j]代表用j天来复习第i门课的收获。。&#xff08;这里居然可能用的天数多而收获更少……囧&#xff09; mark&#xff1a;第…

Python中的or和and运算符的使用

通俗来讲 or&#xff1a;找真值&#xff0c;若第一个为真则返回该值&#xff1b;若全都不为真&#xff0c;则返回最后一个假值 and&#xff1a;找假值&#xff0c;若第一个为假则返回该值&#xff1b;若全都不为假&#xff0c;则返回最后一个真值 牢记这两句话&#xff01;&…

栈-线性表(代码、分析、汇编)

目录&#xff1a;代码&#xff1a;分析&#xff1a;汇编&#xff1a;代码&#xff1a; LinkList.h #ifndef _LINKLIST_H_ #define _LINKLIST_H_typedef void LinkList; //定义链表类型 typedef struct _tag_LinkListNode LinkListNode;//定义链表节点类型 struct _tag_LinkL…