美文网首页
汇编语言上机考试题三星题4(二刷)

汇编语言上机考试题三星题4(二刷)

作者: 魔一方 | 来源:发表于2018-11-12 21:30 被阅读0次

    4.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。

    这道题有个小BUG,可能不太好解决

    还是在捋一下这道题的思路

    首先读一个字符串到BUF2

    把SI给BUF1,DI给BUF2

    CL=4开始比较,如果不相等,就把SI一直挪到逗号那一位+1,然后开始打印

    打印的时候要比较最后是逗号还是美元

    最后要把CH-1,把DI重新给BUF2,

    如果相等且CL=0,就说明找到了,进入CHANGE

    在CHANGE中把SI往后挪,然后重新给DI赋值,返回比较。

    DATAS SEGMENT

        BUF1 DB 'data,name,time,file,code,path,user,exit,quit,text','$'

        BUF2 DB 5

        DB ?

        DB 5 DUP(?)

    DATAS ENDS

    STACKS SEGMENT

        ;此处输入堆栈段代码

    STACKS ENDS

    CODES SEGMENT

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

    START:

        MOV AX,DATAS

        MOV DS,AX

        MOV ES,AX

        LEA DX,BUF2

        MOV AH,0AH

        INT 21H

        MOV DL,0AH

        MOV AH,02H

        INT 21H

        MOV DL,0DH

        MOV AH,02H

        INT 21H

        MOV CH,10

        MOV CL,4

        LEA SI,BUF1

        LEA DI,BUF2[2]

    L:

    CMP CH,0

    JZ END0

    CLD

    NEXT:

    CMPSB

    JNZ TIAOZHUAN

    DEC CL

    CMP CL,0

    JZ CHANGE

    JMP NEXT

    TIAOZHUAN:

    CMP CL,0

    JZ DAYIN

    DEC CL

    INC SI

    JMP TIAOZHUAN

    DAYIN:

    MOV DL,[SI-5]

    MOV AH,02H

    INT 21H

    MOV DL,[SI-4]

    MOV AH,02H

    INT 21H

    MOV DL,[SI-3]

    MOV AH,02H

    INT 21H

    MOV DL,[SI-2]

    MOV AH,02H

    INT 21H

    ;MOV DL,[SI-1]

    ;MOV AH,02H

    ;INT 21H

    MOV BL,[SI-1]

    CMP BL,'$'

    JZ END0

    MOV DL,[SI-1]

    MOV AH,02H

    INT 21H

    LEA DI,BUF2[2]

    MOV CL,4

    DEC CH

    JMP L

    CHANGE:

    INC SI

    DEC CH

    MOV CL,4

    LEA DI,BUF2[2]

    JMP L

    END0:

        ;此处输入代码段代码

        MOV AH,4CH

        INT 21H

    CODES ENDS

        END START

    相关文章

      网友评论

          本文标题:汇编语言上机考试题三星题4(二刷)

          本文链接:https://www.haomeiwen.com/subject/ujrhfqtx.html