汇编语言 数据段中有50个字型数据,统计其中0的数并把统计结果存在存储单元中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言 数据段中有50个字型数据,统计其中0的数并把统计结果存在存储单元中相关的知识,希望对你有一定的参考价值。

汇编语言 数据段中有50个字型数据,统计其中0的个数,并把统计结果存在存储单元中。程序设计。谢

  楼主所需程序如下:

  图A为源程序;(注明:绿色指令(被注释的程序)为屏幕显示输出程序,楼主可要可不要,若去除注释符号“;”则在屏幕上输出显示0的统计个数。)

  图B为调试过程中,在程序执行完毕退出前查询内存的存储情况。因为程序数据段定义的时候定义了19个0,所以内存中存储统计的个数为13H个,即19个。


  图A:(源程序)


  图B:(debug)

参考技术A DATA1  SEGMENT 
    DW   1, 2, 3 ;楼主自己补足50个数
    N   DB  0
DATA1  ENDS

CODE1 SEGMENT 

ASSUME   CS:CODE1,DS:DATA1

START:
    MOV   AX, DATA1
    MOV   DS, AX
    MOV   SI, 0
    MOV   CX, 50
@@: CMP   WORD PTR [SI], 0
    JNZ   NEXT
    INC   N
NEXT:ADD  SI, 2
    LOOP  @B       
    MOV   AX, 4C00H
    INT   21H
CODE1 ENDS
    END   START

参考技术B org 100hDATA SEGMENTBUFFER DW 10GREATZ DW ? ;正数ZERO DW ? ;零LITTLEZ DW ? ;负数DATA ENDSSTART: MOV AX,DATA MOV DS,AX XOR AX,AX ;AX清零 MOV GREATZ,AX MOV ZERO,AX MOV LITTLEZ,AX LEA SI,BUFFER ;取第数据 MOV CX,[SI] ADD SI,2ST_COUNT: MOV AX,[SI] ADD SI,2 AND AX,AX JLE COUNT1 ;小于等于0则跳转 INC GREATZ JMP COUNT3 COUNT1: JL COUNT2 ;小于0则跳转 INC ZERO JMP COUNT3COUNT2: INC LITTLEZCOUNT3: DEC CX JNZ ST_COUNTCODE ENDS END START

C语言 输入100个数据(0—100之间)统计大于60的数

下面是一个示例程序,它可以让用户输入100个整数并统计大于60的数的个数:

Copy code
#include <stdio.h>

int main()
int i, count = 0, num;

printf("请输入100个数(0-100之间):\n");

for (i = 0; i < 100; i++)
scanf("%d", &num);

if (num > 60)
count++;



printf("大于60的数的个数为:%d\n", count);

return 0;

程序首先通过循环,让用户依次输入100个数。在每次循环中,程序读取一个整数并进行比较,如果该数大于60,则将大于60的数的个数加1。最后,程序输出统计结果。

需要注意的是,在程序中没有对用户输入的数进行范围判断,这可能会导致用户输入无效的数据。如果需要进行输入验证,可以在读取数字之前添加验证逻辑。
参考技术A #include <stdio.h>
void main()

int i,x[100],sum=0;
for(i=0;i<100;i++)
scanf("%d",&x[i]);
for(i=0;i<10;i++)
if(x[i]>60)
printf("%d\n",x[i]);
sum++;
printf("sum= %d\n",sum);
追问

小问一下 你那个x[200]是什么意思呀

追答

这是1个数组,将你输入的数据一次性放在里面,其中X是数组名,100是数组的容量
这样之后调用时就不会数据遗失了~~

本回答被提问者采纳
参考技术B 代码
#include<stdio.h>
void main()
int count=0,i,a;
for(i=0;i<=99;i++)
scanf("%d",&a);
if(a>60)
count++;
printf("%d",count);
参考技术C 你只需要比较你输入的数据和60 的大小就行,小于就舍掉,大于就count加1 参考技术D for循环就行了,你可以边输边统计,不用数组了。追问

你又输入的代码么。。就是不知道代码怎么写呀

追答

#include
void main()

int sum=0;
int k=0;
for(int i=0;i60)

sum++;


printf("sum= %d\n",sum);

以上是关于汇编语言 数据段中有50个字型数据,统计其中0的数并把统计结果存在存储单元中的主要内容,如果未能解决你的问题,请参考以下文章

王爽《汇编语言》第三版 第六章 包含多个段的程序

c语言:如果有一大堆数,怎么找出其中出现次数最多的那个

汇编语言程序设计第六章

输入一个字符串,统计其中单词的个数

java中怎么求随机产生50个10以内的整数,输出其中重复次数最多的数?

谷歌分析 API。在一个段中使用度量 transactionRevenue 的两个条件的问题