微机原理两个程序


显示一个固定的字符串

TITLE  STRING DISPLAY; 
DATA SEGMENT
STRING1 DB 'WELCOME TO XTU $' ;字符串以’$’符号结尾,以单引号括起来
DATA ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
START:
  PUSH DS
  MOV AX,0
  PUSH AX
  MOV AX,DATA
  MOV DS,AX
  LEA DX,STRING1
  MOV AH,9;DOS功能调用,在屏幕上显示字符串
  INT 21H   ;DOS中断
  MOV AH,4CH
  INT 21H
CODE ENDS
  END START
该程序成功显示了固定字符串WELCOME TO XTU,完成了字符显示程序。

寻找字符串中某个字符的数量

TITLE  calculate word quantity; 
DATA SEGMENT
STRING1 DB 'ABAaAAAAABaaaaaBBBBBB'  ;输入待检测的字符串
STRING2 DB 'B'           ;给定要检测的那个数
;STRING3 DB STRING2-STRING1 
DATA ENDS

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

START:

  MOV  AX,DATA ;将数据送给AX
  MOV  DS,AX   ;将AX中的数据送到DS
  MOV  ES,AX   ;将AX中的数据送到ES

  MOV  DI,OFFSET STRING1  ;将字符串1的偏移地址送到DI
  MOV  AL,STRING2         ;将字符串2的内容送给AL
  MOV  CX,50              ;设置循环次数

NEXT:                        ;调用一个函数

  CMP [DI],AL              ;以DI里的内容为地址所对应的数与AL比较
  JNE NO_FOUND             ;比较结果如果不相等,跳转到NO_FOUND
  INC BX                  ;如果比较结果相等,则执行这条语句,BX自加1

NO_FOUND:

  INC DI            ;比较结果不等,则让DI自加,让字符串1的下一个字符
                    ;进行比较
  LOOP NEXT                 ;回到NEXT比较,直到CX为0

  MOV  DL,BL                ;将计好的数给DL  
  ADD DL,30H                ;将DL转换成ASCII码
  MOV  AH,02
  INT  21H
  MOV  AH,4CH
  INT  21H

CODE ENDS

END START

文章作者: 未名编程
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 未名编程 !
  目录