汇编语言上机考试题1

代码不是我写的,我就加了注释。。。。

请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。

DATAS SEGMENT

    BUF1 DB 100

    DB ?

    DB 100 DUP(?)

  BUF2 DB 'CC','$';这个一会要用字符串输出,所以要有一个美元符号。

DATAS ENDS


STACKS SEGMENT

STACKS ENDS


CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

    MOV AX,DATAS

    MOV DS,AX


    LEA DX,BUF1

    MOV AH,0AH;读入键盘输入的东西

    INT 21H

    MOV DL,0AH;换行

    MOV AH,02H

    INT 21H

    MOV BL,BUF1[1];这里是把BUF1的第二个数即输入字符的个数缓存在BL里

    MOV SI,2;设置起始位置

CHULI:

CMP BL,0;看看是不是处理完了

JZ EXIT

CMP BUF1[SI],'A';k看看是不是A

JZ ISA

JNZ ISB

ISB:不是A的话用02号指令输出一个字符,把要输出的用mov给DL

MOV DL,BUF1[SI]

MOV AH,02H

INT 21H

INC SI

DEC BL

JMP CHULI

ISA:;是A的话用09号指令输出一串字符,把要输出的用LEA给DX

LEA DX,BUF2

MOV AH,09H

INT 21H

INC SI

DEC BL

JMP CHULI

EXIT:

    ;此处输入代码段代码

    MOV AH,4CH

    INT 21H

CODES ENDS

    END START

你可能感兴趣的:(汇编语言上机考试题1)