标题:关于 masm2012.5,w764 位系统,按照书上写的打入一个 asm 程序,结果生成 ...
只看楼主
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
结帖率:71.43%
已结贴  问题点数:20 回复次数:8 
关于 masm2012.5,w764 位系统,按照书上写的打入一个 asm 程序,结果生成 obj 文件时,说 start 符号无定义?
datarea segment
    string1    db 'Move the cursor backward.'
    string2 db 'Move the cursor backward.'
    mess1    db 'Match.',13, 10, '$'
    mess2   db 'No match.',13, 10, '$'
datarea ends
prognam segment
main    proc    far
        assume cs:prognam,ds:datarea,es:datarea
start:
        push    ds
        sub        ax,ax
        push    ax
        
        mov        ax, datarea
        mov        ds,ax
        mov        es,ax
        
        lea        si,string1
        lea     di,string2
        cld
        mov        cx,25
        repz    cmpsb
        jz        match
        lea        dx,mess2
        jmp        short disp
match:
        lea        dx,mess1
disp:
        mov     ah,9
        int        21h
        ret
main    endp
prognam ends
         end     start

 

搜索更多相关主题的帖子: backward cursor start 
2014-04-19 09:54
半江渔火
Rank: 2
等 级:论坛游民
帖 子:4
专家分:20
注 册:2013-3-21
得分:20 
masm在64位上能用吗,不过这个问题好像对程序调试没什么影响
2014-04-20 17:44
wwssff333
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-5-4
得分:0 
MASM64的格式不是这样吧? 比如:

.DATA
szText     BYTE  "欢迎进入WIN64汇编语言的世界!",0
2014-05-15 18:32
xkwy0000
Rank: 6Rank: 6
等 级:贵宾
威 望:11
帖 子:107
专家分:441
注 册:2013-2-8
得分:0 
无影响,但是按照新的规范可以写成:
END MAIN
END PROGNAM
2014-05-16 16:04
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
得分:0 
回复 2 楼 半江渔火
masm在64位机上可以使用,masm for windows2012.5好像集成了dosbox的虚拟环境供调试,另外,start符号无定义好像是软件的兼容性问题,在64位和32位的w7好像都会出现这种情况,可以将start:移到main proc far前面就可以通过运行,虽然在语法上是错误的
2014-05-19 16:00
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
得分:0 
回复 4 楼 xkwy0000
好像不可以通过我把最后写成
end  start
end  main
end  prognam
   
结果提示main块嵌套不匹配,前后段名不相同。。不过可以看看我给2楼的回复,谢谢哈
2014-05-19 16:12
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
注意  标号的 作用域
main是一个函数声明



我要成为嘿嘿的黑客,替天行道
2014-06-01 21:12
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
得分:0 
标号好像是不用 end  start的把
你不是segment

我要成为嘿嘿的黑客,替天行道
2014-06-01 21:13
apiqqz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:56
专家分:25
注 册:2011-9-2
得分:0 
end start 是表示从start标号处开始执行,不过里面用了两个lea 指令,为什么不用offset呢,这个不是在编译时就可以确定地址的么?
2014-06-26 07:50



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




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

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