北邮微机原理 实验二 分支,循环程序设计

        实验二   分支,循环程序设计
一.实验目的:
    1.开始独立进行汇编语言程序设计;
    2.掌握基本分支,循环程序设计;
    3.掌握最简单的 DOS 功能调用.

二.实验内容:
    1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9.
    2.编写一个程序统计数据区中正数,负数和零的个数.
    3.将统计结果在屏幕上显示.

源码:

DATA SEGMENT
BUFF DW 0,-9,29,9,-3,0,32,-34
COUNT EQU $-BUFF ;count的值为buff所占字节数
STRING1 DB 'THE NUMBER OF PLUS IS ','$'
STRING2 DB 'THE NUMBER OF ZERO IS ','$'
STRING3 DB 'THE NUMBER OF MINUS IS ','$'
PLUS DB ? ;大于零的个数
ZERO DB ? ;等于零的个数
MINUS DB ? ;小于零的个数
DATA ENDS
STACK SEGMENT STACK 'STACK'
      DB 100 DUP (?)
STACK ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
BEGIN: MOV AX,DATA
       MOV DS,AX
       MOV CX,COUNT
       SHR CX,1 ;相当于除2,正好为buff中的数据个数
       MOV DX,0 ;设定初值,dh及dl分别为等于,大于零的个数
       MOV AH,0 ;ah为小于零的个数
       LEA BX,BUFF
AGAIN: CMP WORD PTR [BX],0
       JGE PLU ;大于等于零时转plu
       INC AH ;统计小于零的个数
       JMP NEXT
PLU:   JZ  ZER ;等于零时转zer
       INC DL ;统计大于零的个数
       JMP NEXT
ZER:   INC DH ;统计等于零的个数
NEXT:  INC BX ;修改地址指针
       INC BX
       LOOP AGAIN
       MOV PLUS,DL ;保存结果
       MOV ZERO,DH
       MOV MINUS,AH
      
       MOV AH,09H ;输出结果
       MOV DX,OFFSET STRING1
       INT 21H
       MOV AH,02H
       MOV AL,PLUS
       ADD AL,30H
       MOV DL,AL
       INT 21H
       MOV DL,0DH
       INT 21H
       MOV DL,0AH
       INT 21H
       MOV AH,09H
       MOV DX,OFFSET STRING2
       INT 21H
       MOV AH,02H
       MOV AL,ZERO
       ADD AL,30H
       MOV DL,AL
       INT 21H
       MOV DL,0DH
       INT 21H
       MOV DL,0AH
       INT 21H
       MOV DX,OFFSET STRING3
       MOV AH,09H
       INT 21H
       MOV AH,02H
       MOV AL,MINUS
       ADD AL,30H
       MOV DL,AL
       INT 21H
       MOV AX,4C00H
       INT 21H
CODE   ENDS
       END BEGIN

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值