首页
社区
课程
招聘
一个关于MOVSB的汇编程序
发表于: 2005-2-7 11:08 5790

一个关于MOVSB的汇编程序

2005-2-7 11:08
5790
初学汇编,下面程序执行无结果显示,在DEBUG下U CS:00后前面多了几条DB 66的汇编代码(导致程序错误执行),不知道是为什么会有那几条指令.
系统环境:MASM5.0 WINXP

                   .386
                .MODEL                SMALL
                .DATA
        SEND        DB        20         DUP('*')
        RECV        DB        20        DUP(' '),'$'
                .CODE
A10MAIN                PROC        FAR
        MOV                AX,@data
        MOV                DS,AX
        MOV                ES,AX
       
        CLD
        MOV                CX,20
        LEA                SI,SEND
        LEA                DI,RECV
        REP                MOVSB

        MOV                AH,09H
        LEA                DX,RECV
        INT                21H
       
        MOV                AX,4C00H
        INT                21H
A10MAIN                ENDP       
                END                A10MAIN
初次提问,请多多包涵!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
66表示后面的1条指令的数据部分在16/32位之间切换
2005-2-7 11:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢 FIRSTROSE 的解答.
    我再仔细看看程序.
2005-2-7 11:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
但是为什么会出现66 ? 我原来调的某些程序中就没有插入这样的16/32位之间切换的指令.
而且由于这些插入指令,我在DEBUG下T单步执行的时候程序没有正常执行.
请问如何改进才能得到正确的结果:显示出RECV中的20个*

系统环境:MASM5.0 WINXP
2005-2-7 11:58
0
游客
登录 | 注册 方可回帖
返回
//