【汇编实验】有符号数输入且存入内存并判断负数个数

本次实验重点在于循环程序设计,包括计算序列S=12+23+...+N(N+1)以及统计数据区内的负数数量。在实验过程中,遇到的问题主要是如何正确存入内存和计数,尤其是在使用寄存器时需要注意清零操作,例如从AL转到AX时需清零AH。通过实验,加深了对跳转、循环指令的理解,并运用了NEG指令,同时也认识到要避免编程中的低级错误。
摘要由CSDN通过智能技术生成

**

实验项目:循环程序设计实验

**
一.实验目的
1、掌握循环程序的结构;
2、学习综合程序的设计、编写及调试;

二.实验内容
1、计算S=12+23+34+。。。+N(N+1);
2、求某个数据区内负数的个数;

三.试验程序
1、

DATAS SEGMENT
    RESULT  	DW ?			;计算结果
   DVAL DB 5 DUP(?);申请缓冲区,存放转换后的数据
   DLEN =$-RESULT ;地址偏移量
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
	MOV DX,0001H
	MOV BL,02H
A0:     	
	MOV AL,BL
	INC BL
	MUL BL
	ADD DX,AX		;结果存于DX中
	CMP AX,00C8H	;判断N(N+1)与200的大小
	JB A0

	MOV AX,DATAS		;保存计算结果
	MOV DS,AX
	MOV RESULT,DX

;16进制转10进制输出
MOV SI,OFFSET RESULT;数据源地址
MOV DX,[SI]
MOV SI,OFFSET DLEN;目标数据地址  offset送回偏移地址
    A1:	
DEC SI;自减
MOV AX,DX
MOV DX,0
MOV CX,10;除数10
DIV CX;商送AX,余数DX
XCHG AX,DX;数据交换
MOV [SI],AL;存入目标地址

CMP DX,0000H
    JNE A1;判断转换结束否,未结束转A1   不等跳转
    A2:		
CMP SI,OFFSET DVAL;与目标地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值