问题描述

试编写一完整的汇编语言程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别求出这两个数组中数据的个数。

解决方案

DSEG SEGMENT
COUNT EQU 20
ARRAY DW 20 DUP (?) ;存放数组
COUNT1 DB 0 ;存放正数的个数
ARRAY1 DW 20 DUP (?) ;存放正数
COUNT2 DB 0 ;存放负数的个数
ARRAY2 DW 20 DUP (?) ;存放负数
ZHEN DB 0DH, 0AH, ‘The positive number is:’, ‘$’ ;正数的个数是:
FU DB 0DH, 0AH, ‘The negative number is:’, ‘$’ ;负数的个数是:
CRLF DB 0DH, 0AH, ‘$’
DSEG ENDS
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG
START: PUSH DS ;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;给DS赋值
BEGIN: MOV CX, COUNT
LEA BX, ARRAY
LEA SI, ARRAY1
LEA DI, ARRAY2
BEGIN1: MOV AX, [BX]
CMP AX, 0 ;是负数码?
JS FUSHU
MOV [SI], AX ;是正数,存入正数数组
INC COUNT1 ;正数个数+1
ADD SI, 2
JMP SHORT NEXT
FUSHU: MOV [DI], AX ;是负数,存入负数数组
INC COUNT2 ;负数个数+1
ADD DI, 2
NEXT: ADD BX, 2
LOOP BEGIN1
LEA DX, ZHEN ;显示正数个数
MOV AL, COUNT1
CALL DISPLAY ;调显示子程序
LEA DX, FU ;显示负数个数
MOV AL, COUNT2
CALL DISPLAY ;调显示子程序
RET
MAIN ENDP
DISPLAY PROC NEAR ;显示子程序
MOV AH, 9 ;显示一个字符串的DOS调用
INT 21H
AAM ;将(AL)中的二进制数转换为二个非压缩BCD码
ADD AH, ‘0’ ;变为0~9的ASCII码
MOV DL, AH
MOV AH, 2 ;显示一个字符的DOS调用
INT 21H
ADD AL, ‘0’ ;变为0~9的ASCII码
MOV DL, AL
MOV AH, 2 ;显示一个字符的DOS调用
INT 21H
LEA DX, CRLF ;显示回车换行
MOV AH, 9 ;显示一个字符串的DOS调用
INT 21H
RET
DISPLAY ENDP ;显示子程序结束
CSEG ENDS ;以上定义代码段
END START

汇编语言——正数数组P和负数数组N相关推荐

  1. 数组的正负数分割排序

    描述 设任意n个整数存放于数组A[1..n]中,试编写算法,将所有正数排在所有负数前面(要求:正(负)数序列中数的相对顺序不变,算法时间复杂度为O(n)). 输入 多组数据,每组数据有两行,第一行为数 ...

  2. 学习-Java数组之foreach遍历数组之正负数数量统计

    第1关:学习-Java数组之foreach遍历数组之正负数数量统计 任务描述 相关知识 foreach 语句 编程要求 测试说明 任务描述 本关任务:使用 foreach 语句统计数组中正负数的个数. ...

  3. 返回一个一维整数数组中最大子数组的和02

    一,要求 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值 二,设 ...

  4. 求数组的最大子数组和最大子数组的和

    输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, 1 ...

  5. nyoj983 首尾相连数组的最大子数组和

    首尾相连数组的最大子数组和 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是 ...

  6. php新增数组函数,php操作数组函数

    整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数.数组的分段和填充.数组与栈.数组与列队.回调函数.排序.计算.其他的数组函数等. 一.数组操作的基本函数 数组的键名和值 array_va ...

  7. 结对开发——环形一维数组求最大子数组和

    题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[ ...

  8. 课堂练习:返回一个二维数组中最大子数组的和

    1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  9. Java数组与容器类分析资料--数组、List和Set、Map等

    2019独角兽企业重金招聘Python工程师标准>>> Java容器分析--数组 数组是Java语言内置的类型,除此之外,Java有多种保存对象引用的方式.Java类库提供了一套相当 ...

最新文章

  1. redis client 2.0.0 pipeline 的list的rpop bug
  2. 洛谷P4513 小白逛公园
  3. JVM 史上最最最完整知识总结!
  4. 屌丝。。。配角。。。
  5. 左侧固定,右侧自适应的布局方式(新增评论区大佬教的方法)
  6. jmp、JE、JZ、JNE、JNT指令
  7. py程序员写代码的习惯养成 防止想到什么写什么
  8. 让电脑说话代码_让您的代码为您说话
  9. LongAdder原理
  10. TIT 数据库实验一 在SQL Server中创建数据库(SQL入门教学一 从0到1)
  11. 电脑无线网络(WiFi)密码查看(cmd命令控制符)
  12. javascript 获取汉字笔画拼音,使用笔画排序
  13. JAVA学习笔记JEECG BOOT介绍
  14. Vert.x ——概述
  15. python是面向对象开发_Python之面向对象
  16. linux的passive用法,get的被动用法(get-passive)
  17. “无剑胜有剑”软件大师之路的一点探索
  18. 使用PuTTY连接远程Linux服务器
  19. Android LottieAnimation使用---踩坑篇
  20. 【杂货铺】金融机构分类

热门文章

  1. 【转】Scott_ASP.NET MVC框架(第三部分) 把ViewData从控制器传到视图
  2. linux缓存文件地址,如何遍历linux内核中的文件地址空间的页面缓存树(基数树)
  3. java 字节取位_java位 、字节 、字符的梳理
  4. 计算机科学与编程基础,国外经典教材·计算机科学与技术:Oracle 10g编程基础
  5. 我是学计算机的上银行考什么条件,计算机专业能报考银行哪些岗位
  6. 容器部署不适合文件服务器,建议使用内置容器部署War文件与可执行jar
  7. nfine框架 上传文件_网站服务器Nginx运行环境,后台文件上传超出Nginx的最大值...
  8. 八十七、Python | 十大排序算法系列(上篇)
  9. tensorflow笔记
  10. 【机器学习】银行贷款违约预测