欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

汇编一个小程序,有几句话看不懂求大神指导下,该怎么解决

更新时间: 2014-01-05 03:17:25 责任编辑: Author_N1

 

汇编一个小程序,有几句话看不懂求大神指导下
1.编写完整程序,从键盘输入一个字符串STRING,同时,把字符串STRING中的‘&’字符用空格符替代。并显示出代替后的字符串及被代替字符的位置(串扫描).
程序
DATA SEGMENT
     STRING DB 8 DUP(?)
     ADDR DW?
DATA ENDS
CODE SEGMENT
     ASSUME ES:DATA,CS:CODE
START:
    MOV AX,DATA
    MOV ES,AX
    MOV CX,8
    MOV DI,0
AGAIN:
    MOV AH,01H
    INT 21H
    MOV STRING【DI】,AL
    INC DI
    LOOP AGAIN
    LEA DI,STRING
    MOV CX,8
    CLD
    MOV AL,26H
    REPNZ SCASB
    MOV AL,20H
    XCHG AL,STRING[DI-1]
    MOV BX,8
    SUB BX,CX
    MOV ADDR,BX。。。。。。。。。这句是求什么???
    MOV CX,8
    MOV SI,0
REST:
    MOV AL,STRING[SI]
    MOV DL,AL
    MOV AH,02H
    INT 21H
    INC SI
    LOOP REST
    ADD BX,30H。。。。。。。。。。。。。这句不懂!!!!!
    MOV DL,BL。。。。。。。。。。。。。。???
    MOV AH,02H
    INT 21H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START

--参考方法--
>> MOV ADDR,BX。。。。。。。。。这句是求什么???
  BX 是那个字符在 STRING 内的位置吧,这句是将其保存在 ADDR 变量里。这样的话,上面的那个 XCHG 就有问题了,虽然你这里可能是对的,但却是有问题的,XCHG AL, [DI-1] 才对。

>> ADD BX,30H。。。。。。。。。。。。。这句不懂!!!!!
  BX 是位置,数值而已,显示的话,要转成相应的字符,比如 1->'1'(31h) 所以是加上 30H ;下面赋于 DL 是由于接着的显示字符功能调用要求待显示的字符是在 DL 里,int21h 的这个功能就是这么规定的。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:25
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20430/
本文WWW.DOC100.NET DOC100.NET版权所有。