标题:【求助】输出字符串显示乱码。不知道是为什么。求帮忙~谢谢谢谢谢谢
只看楼主
kitten2927
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-10-31
 问题点数:0 回复次数:1 
【求助】输出字符串显示乱码。不知道是为什么。求帮忙~谢谢谢谢谢谢
DATA   SEGMENT                                                                                             
   BUFFER   DB   40,?,40 DUP(?)     ;输入缓冲区           
   PRINT    DB   'TO INPUT:','$'    ;要输出提示信息
   CRLF     DB   0DH,0AH,'$'
   COUNT1   DB  ?                   ;外层循环次数
   COUNT2   DB  ?                   ;内层循环次数
DATA   ENDS

CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA

MAIN    PROC FAR                 ;该过程为远程型.可以在段内被调用,也可以在段间被调用
        MOV  AX,DATA         
        MOV  DS,AX

        MOV   AH, 9              ;输出一串提示信息     “mov ah,9 ”是调用int 21h  的功能号
        LEA   DX, PRINT          ;lea 传送有效地址指令,把原操作数的有效地址送给指定的寄存器
        INT   21H
        
        MOV   AH, 0AH            ;输入一串字符
        LEA   DX, BUFFER
        INT   21H
        
        MOV   AH, 9              ;输出回车换行符,以使光标停在新行首
        LEA   DX, CRLF
        INT   21H

        MOV  CL,BUFFER+1         ;取接收到的字符个数在cx中            
        XOR  CH,CH
        MOV  COUNT1,CL
        MOV  COUNT2,CL
        DEC  COUNT1
        DEC  COUNT2
        
        LEA  SI,BUFFER+2         ;将输入的第一个字符送给SI寄存器  
        LEA  DI,BUFFER+2         ;将输入的第一个字符送给DI寄存器
                 
LOOP1:  INC  SI
        MOV  AL,[SI]         
        MOV  BL,[DI]
        CMP  AL,BL               ;对比第一个字符和后面的字符是否相等
        JZ   ACT1                ;若相等,执行ACT1
        JMP  LOOP4               ;循环

ACT1:   MOV  AL,0                ;将和前面字符相等的字符置为0
        MOV  [SI],AL
        JMP  LOOP4

LOOP3:  INC DI
        MOV COUNT2,CL
        DEC COUNT2
        JMP LOOP1      


LOOP4:  DEC COUNT2
        JNZ LOOP1

        DEC COUNT1
        JNZ LOOP3

LOOP7:  MOV COUNT1,CL

LOOP5:  MOV  AL,[SI]
        CMP  AL,0
        JE   NO_CO
        JMP  LOOP6
               

NO_CO:  INC SI
        JMP LOOP8

LOOP6:  MOV  DL,[SI]
        MOV  AH,2
        INT  21H
        INC  SI
        JMP  LOOP8

LOOP8:  DEC COUNT1
        JNZ LOOP5

EXIT:   MOV   AX, 4C00H
        INT   21H

MAIN    ENDP
CODE    ENDS
        END MAIN
搜索更多相关主题的帖子: 提示信息 字符串 缓冲区 
2015-10-31 21:24
kitten2927
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-10-31
得分:0 
没有人吗?
2015-10-31 21:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458765-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.241500 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved