| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:这道题怎么解啊?
只看楼主 加入收藏
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
结帖率:89.66%
收藏
已结贴  问题点数:20 回复次数:2 
这道题怎么解啊?
设在数据段中有一个长度为10的字符串,请编写一段程序将该字符串颠倒过来存储到附加段中!
程序代码:
SEG SEGMENT
  VAR1 DB "ASDFGHJKLQ"
DSEG ENDS
EXTRA1 SEGMENT
  VAR2 DB 10 DUP (?)
EXTRA1 ENDS
CSEG SEGMENT

 ASSUME CS:CSEG,DS:DSEG,ES:EXTRA1

 START:

 MOV AX,DSEG

 MOV DS,AX

 MOV AX,EXTRA1

 MOV ES,AX

 LEA SI,VAR1+9           ;将SI指向变量VAR1的最后那个字符
 LEA DI,VAR2
NEXT:

 LODSB

 DEC SI                  ;将SI减一指向另一个字符
 STOSB

 INC DI                  ;将DI加一,指向附加段的高字节
 CMP BYTE PTR [SI],00H   ;比较接下来的字符是否是00h.
 JNZ NEXT                ;不行的的话就跳转到next
 MOV AH,4CH

 INT 21H
CSEG ENDS
END START

大家看看吧,我这里只有存到一个字符Q到了附加段中,大家帮忙看看!!
搜索更多相关主题的帖子: 字符串 
2010-10-19 13:17
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:10 
DATA SEGMENT
    VAR1 DB 'ABCDEFGHIJ',0
DATA ENDS

EXTRA SEGMENT
    VAR2 DB 10 DUP(?)
EXTRA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
   
    MOV AX,EXTRA
    MOV ES,AX
   
    CLD
    MOV SI,OFFSET VAR1
    XOR CX,CX
GETTAIL:
    LODSB            ;获取字串长度和指向字串尾
    OR AL,AL
    JZ LOP
    INC CX
    JMP GETTAIL

LOP:
    STD
    DEC SI
    DEC SI            ;指向字串尾
    MOV DI,OFFSET VAR2    ;指向要转移区
LOP2:
    LODSB
    MOV ES:[DI],AL        ;转移数据
    INC DI
    LOOP LOP2
   
    MOV AH,4CH
    INT 21H
CODE ENDS
    END START
2010-10-19 18:13
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:10 
楼主应该去熟悉下指令的用法。看lodsb,stosb就知道错在哪了。

离恨恰如春草,更行更远还生。
2010-10-19 21:40
快速回复:这道题怎么解啊?
数据加载中...
 
   



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

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