. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
更灵活的定位内存地址的方法
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
这个程序哪里写的不对,编译好多次通不过?
[待解决]
回复[
5
次 ] 点击[
641
次 ]
laohou
[帖 主]
[ 发表时间:2008-02-18 17:49 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-01-14 21:05
assume ds:data
data segment
db 'unIX'
db 'foRK'
data ends
code segment
start: mov al,'a'
mov bl,'b'
mov ax,4c00h
int 21h
code ends
end start
laohou
[第
1
楼]
[ 回复时间:2008-02-18 17:52 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-01-14 21:05
老是提示:
71.txt(7): error A2062: Missing or unreachable CS
50576 + 415184 Bytes symbol space free
0 Warning Errors
1 Severe Errors 看不懂呀.
taotling
[第
2
楼]
[ 回复时间:2008-02-18 19:07 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55
第一行改成:
assume ds:data,cs:code
laohou
[第
3
楼]
[ 回复时间:2008-02-18 19:35 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-01-14 21:05
为什么要加cs:code,不加就不行呢?
taotling
[第
4
楼]
[ 回复时间:2008-02-18 22:37 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55
我的理解:
assume ds:data你可以不加,
因为程序的data可以放在code段之前的栈段中。
你还可以用mov ax,data;mov ds,ax来实现段与寄存器的关联。
但assume cs:code你一定要加,
编译器是根据end start来指定CS:IP的,
但是这里的CS要先确定,
靠什么来确定呢?
如果你不用assume cs:code将code与cs寄存器相关联
编译器是不知道CS怎么来确定的。
所以用assume cs:code确定CS。
laohou
[第
5
楼]
[ 回复时间:2008-02-19 10:29 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-01-14 21:05
有道理,谢谢老师.
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved