在微型计算机中 负数,微机原理编程题!计算负数的个数问题!

满意答案

00e27ab806e4881f8254fe7ae8741834.png

wss5699

2015.06.25

00e27ab806e4881f8254fe7ae8741834.png

采纳率:52%    等级:9

已帮助:963人

统计负数的个数

设数据段有如下有符号数定义

NUM DB -19, 28, 37, -46, 55, 61, -74, 255

设计一个程序,完成两项要求:

⑴ 统计并且显示负数的个数;

⑵ 求最大值和最小值并在屏幕上显示。

显示格式由自己决定。

.MODEL SMALL

.STACK 100

.DATA

NUM DB -19, 28, 37, -46, 55, 61, -74, 255

COUNT EQU $-OFFSET NUM

DATA DB 3 DUP(0)

MESS1 DB " MAX:$"

MESS2 DB " MIN:$"

MESS3 DB " NUMBER OF NEGETIVE:$"

.CODE

.STARTUP

MOV SI,OFFSET NUM

MOV DI,OFFSET DATA

MOV AL,[SI]

MOV [DI],AL

MOV [DI+1],AL

MOV CX,COUNT;内存中数据的个数

XOR BX,BX;储存个数,最后存在[DI+2]

COMP: MOV AL,[SI];循环比较以及更新数值

INC SI

CMP AL,[DI]

JL L1

MOV [DI],AL

L1: CMP AL,[DI+1]

JG L2

MOV [DI+1],AL

L2: CMP AL,0

JGE L3

INC BX

L3: LOOP COMP

MOV [DI+2],BX

MOV DX,OFFSET MESS1;-----输出最大值

MOV AH,9

INT 21H

MOV AL,[DI]

CALL OUTPUT

MOV DX,OFFSET MESS2;-----输出最小值

MOV AH,9

INT 21H

MOV AL,[DI+1]

CALL OUTPUT

MOV DX,OFFSET MESS3;-----输出负数个数

MOV AH,9

INT 21H

MOV AL,[DI+2]

CALL OUTPUT

MOV AH,4CH

INT 21H

;------子过程输出十六进制整数

OUTPUT PROC

MOV BL,AL

MOV CL,4

SHR AL,CL

CALL PRINT ;输出高位

MOV AL,BL

AND AL,0FH

CALL PRINT ;输出低位

MOV AH,2

MOV DL,'H'

INT 21H ;输出H符号

RET

OUTPUT ENDP

PRINT PROC ;子程序,输出16进制数

MOV AH,02H

MOV DL,AL

CMP DL,09H

JB L4

ADD DL,7

L4: ADD DL,30H

INT 21H

RET

PRINT ENDP

.EXIT

END

11分享举报

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值