循环程序设计实验

 

1.统计一个字形数组中负数元素个数

.486

DATA SEGMENT

ARRAY DW 54,-1050,-448,0,6800,-853

COUNT EQU $-ARRAY;统计占用的空间

RESULT DW ?      

DATA ENDS

CODE SEGMENT

      ASSUME CS:CODE,DS:DATA

START:

       MOV AX,DATA

       MOV DS,AX

      

       MOV SI,OFFSET ARRAY;指针初始化

       MOV CX,COUNT/2;统计数据的个数存入CX

       CLD

       MOV DX,0      

LL:    LODSW;取数到AX

       BT AX,15

       JNC NEXT;判断是否为负数

       INC DX;计数器加1      

NEXT: LOOP LL

 

       MOV RESULT,DX

       MOV AH,4CH

       INT 21H

CODE   ENDS

       END START

2.排序

DATA SEGMENT

BLOCK DB 22H,55H,11H,78H;n4      

DATA ENDS

CODE SEGMENT

      ASSUME CS:CODE,DS:DATA

START:

       MOV AX,DATA

       MOV DS,AX

      

       LEA BX,BLOCK;外循环指针初始化

       MOV CX,3;外循环计数器初始化

      

LP1:   MOV SI,BX;内循环指针初始化

       MOV DX,CX;内循环计数器初始化

       MOV AL,[SI]

      

LP2:   CMP AL,[SI+1]

       JGE LP3

       XCHG AL,[SI+1]

      

LP3:   INC SI;修改内循环指针

       DEC DX

       JNZ LP2

       MOV [BX],AL;存大数

       INC BX;修改内循环指针

       LOOP LP1

      

       MOV AH,4CH

       INT 21H

CODE   ENDS

       END START

3.校验并统计

DATA SEGMENT

STRN DB 'HLFHAL$'

COUNT DB ?      

DATA ENDS

CODE SEGMENT

      ASSUME CS:CODE,DS:DATA

START:

       MOV AX,DATA

       MOV DS,AX

      

       MOV DL,0;计数器清零

       LEA SI,STRN;指针初始化

LL:    LODSB;读入一个数,SI后移

       CMP AL,'$';判断是否结束

       JE EXIT;遇到结束符退出

       JP LL;不需校验转下一个

       OR AL,80H;加校验位

       MOV [SI-1],AL;将校验完的值存回去

       INC DL;计数器加1

       JMP LL

      

EXIT: MOV COUNT,DL;存结果

       ADD DL,30H

       MOV AH,02H

       INT 21H

       MOV AH,4CH

       INT 21H

CODE   ENDS

       END START

4.查找

DATA SEGMENT

FIRST DB 12H,44H,65H,3H,0H

N DW ?      

DATA ENDS

CODE SEGMENT

      ASSUME CS:CODE,DS:DATA,ES:DATA

START:

       MOV AX,DATA

       MOV DS,AX

       MOV ES,AX

      

       MOV DX,0;计数器清零      

       MOV CX,5;设置循环次数

       LEA SI,FIRST;指针初始化

      

LL:    MOV AL,[SI];取数    

       INC SI;修改指针

       CMP AL,0;0比较

       JE EXIT;退出      

       INC DX;计数器加1

       LOOP LL

      

EXIT: MOV N,DX;存结果

       MOV AH,4CH

       INT 21H

CODE   ENDS

       END START

转载于:https://www.cnblogs.com/zyx121322/archive/2008/11/09/1330011.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值