假设数据段从BUF单元开始,存有20个字节的有符号数。请编写一个完整源程序实现: (1)将其中的非负数送数据段PLUS开始的若干单元。 (2)统计非负数的个数,并以十六进制的形式显示在屏幕上,显示格式为: NUM=非负数个数H。

时间: 2023-06-19 18:05:13 浏览: 74
下面是一个完整的源程序,可实现将数据中的非负数送到PLUS单元,并统计非负数的个数并以十六进制形式显示在屏幕上: ``` .MODEL SMALL .STACK 100H .DATA BUF DB 7FH, 0F0H, 0FFH, 80H, 0ABH, 0CDH, 0EFH, 12H, 34H, 56H, 78H, 9AH, 0BDH, 0DEH, 0EFH, 0F1H, 23H, 45H, 67H, 89H PLUS DB 20 DUP (?) COUNT DB 0 .CODE MOV AX, @DATA MOV DS, AX ; 初始化数据段寄存器 MOV CX, 20 ; 数据段中共有20个字节的数据 MOV SI, 0 ; 从BUF单元开始 MOV BX, OFFSET PLUS ; PLUS单元起始地址 LOOP1: CMP BYTE PTR BUF[SI], 0 ; 判断是否为非负数 JNL MOVE ; 如果是非负数,跳转到MOVE INC SI ; 如果是负数,继续循环 LOOP LOOP1 ; 继续处理下一个字节 JMP FINISH ; 处理结束,跳转到FINISH MOVE: MOV AL, BUF[SI] ; 将非负数存入PLUS单元 MOV BYTE PTR [BX], AL INC BX ; PLUS单元地址+1 INC COUNT ; 统计非负数个数 INC SI ; 数据段地址+1 LOOP LOOP1 ; 继续处理下一个字节 FINISH: ; 将非负数个数以十六进制形式显示在屏幕上 MOV AH, 09H ; 选择显示字符串的功能 MOV DX, OFFSET MSG ; 显示提示信息 INT 21H MOV AH, 02H ; 选择显示一个字符的功能 MOV DL, ' ' INT 21H MOV AH, 04H ; 选择显示一个数字的功能 MOV AL, COUNT ; 非负数个数 CALL HEX ; 将数字转换为十六进制 INT 21H MOV AH, 4CH ; 退出程序 INT 21H ; 将数字转换为十六进制 HEX PROC PUSH AX ; 保存寄存器状态 MOV AH, 00H ; AH=0 MOV BL, 0AH ; BL=10 DIV BL ; AL/BL,商在AH中,余数在AL中 CMP AH, 0 ; 判断商是否为0 JZ ENDHEX ; 如果为0,跳转到ENDHEX CALL HEX ; 递归调用HEX ENDHEX: POP AX ; 恢复寄存器状态 CMP AL, 0AH ; 判断余数是否大于9 JL LESS ; 如果小于等于9,跳转到LESS ADD AL, 07H ; 如果大于9,将余数加上7 LESS: ADD AL, 30H ; 加上30H,得到ASCII码 MOV DL, AL ; DL=AL MOV AH, 02H ; 选择显示一个字符的功能 INT 21H RET ; 返回调用程序 HEX ENDP MSG DB 'NUM=', 0 END ```

相关推荐

最新推荐

recommend-type

Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法

主要给大家介绍了关于Spring MVC如何配置双数据源实现一个java项目同时连接两个数据库的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
recommend-type

计算一个Java对象占用字节数的方法

主要介绍了计算一个Java对象占用字节数的方法,较为详细的分析了Java中各类对象所占用的字节数,需要的朋友可以参考下
recommend-type

Keil MDK-ARM各种数据类型占用的字节数 char short int float double

Keil MDK-ARM各种数据类型占用的字节数 char short int float double占用字节数,uCOS-II
recommend-type

通过Spring Boot配置动态数据源访问多个数据库的实现代码

主要介绍了通过Spring Boot配置动态数据源访问多个数据库的实现代码,需要的朋友可以参考下
recommend-type

Python 实现输入任意多个数,并计算其平均值的例子

今天小编就为大家分享一篇Python 实现输入任意多个数,并计算其平均值的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。