2020-11-04

VHDL

请编写一个程序,统计负数的个数,并求最大数和最小数。
设数据段有8个有符号数:
NUM DB -19,+28,37,-46,+55,61,-74,-55

;FILENAME :44.ASM
.586
DATA  SEGMENT USE16
NUM  DB -19,-28,37,-46,+55,+61,-74,-55
MEG1 DB 'The number of negative numbers is:',?,0DH, 0AH,'$'
MEG2 DB 0AH,'MAX=',?,0DH, 0AH,'$'
MEG3 DB 0AH,'MIN=',?,0DH, 0AH,'$'
DATA  ENDS
CODE  SEGMENT USE16
      ASSUME  DS:DATA,CS:CODE
BEG:   MOV  AX,DATA
	   MOV  DS,AX
	   MOV SI,OFFSET NUM
	   MOV CX,8
	   MOV DL,0
	   MOV BL,0
LAST:  CMP BYTE PTR[SI],0
       JG  NEXT
       INC DL;小于0的数比大小
       CMP BYTE PTR[SI],BL;小于0的数存在BL寄存器中
       JLE MINFIND
      
NEXT:  CMP BYTE PTR[SI],BH;当大于0时比较大小,存在BH寄存器中
       JG  MAXFIND
       INC SI
       LOOP LAST
       ;ADD  DL,30H
      ; MOV AH,2
       ;INT 21H
       ADD  DL,30H
       MOV AH,9
       MOV MEG1+34,DL
       MOV DX,OFFSET MEG1
       INT 21H
       MOV AH,9
       MOV DX,OFFSET MEG2
       INT 21H
       MOV CX,8
       
SHOWMAX:MOV DL,'0'
        MOV AH,2
        ROL BH,1
        ADC DL,0
        INT 21H
        LOOP  SHOWMAX 
       MOV AH,2
       MOV DL,'B'
        MOV AH,2
        INT 21H 
         MOV AH,9           
       MOV DX,OFFSET MEG3
       INT 21H
  
       MOV CX,8
SHOWMIN:MOV DL,'0'
        MOV AH,2
        ROL BL,1
        ADC DL,0
        INT 21H
        LOOP  SHOWMIN  
        MOV DL,'B'
        MOV AH,2
        INT 21H
        MOV    AH, 4CH
        INT     21H ;返回 DOS
             
       
MINFIND:  MOV BL,BYTE PTR[SI];把最小值存在BL中
          INC SI
          LOOP LAST

MAXFIND:  MOV BH,BYTE PTR[SI];把最大值存在BH中
          INC SI
          LOOP LAST
  
 
CODE   ENDS
	   END  BEG
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值