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;n取4       

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 'SHDAKDHAKFA$'

COUNT DB ?       

DATA  ENDS

CODE  SEGMENT

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

START:

       MOV AX,DATA

       MOV DS,AX

       MOV ES,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

       JMP LL

       
 
EXIT:  MOV COUNT,DL

       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

       JE  EXIT       

       INC DX 

       LOOP LL

       
 
EXIT:  MOV N,DX

       MOV AH,4CH

       INT 21H 

CODE   ENDS

       END START