. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
转移指令的原理
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
es 这个寄存器要怎么用?
[待解决]
回复[
3
次 ] 点击[
266
次 ]
lx2421
[帖 主]
[ 发表时间:2010-12-26 23:49 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2010-12-26 17:36
最近在做实验九,每次MASM都说我的b800没有定义,我就是mov AX,B800H MOV DS,0B00H,上这里来见人家都是用es这个寄存器,我不是很理解,哪位高手可以指点一下?
masmaster
[第
1
楼]
[ 回复时间:2010-12-27 10:58 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
es与ds一样,用于存放数据段地址,不过与ds不同的是他是附加的,以后学到串指令的时候,就可以常常用到它啦。
你的方法是错误的,
【我就是mov AX,B800H MOV DS,0B00H,上这里来见人家都是用es这个寄存器】
第一,mov AX,B800H 应为:mov ax,0b800h ;当立即数以字母开头的话, 字母前需加0
第二,MOV DS,0B00H 应为:mov ds,ax;段寄存器不允许直接用立即数赋值,须用寄存器中转一下。
zaixuexi
[第
2
楼]
[ 回复时间:2010-12-27 16:17 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
立即数以字母开头的话, 字母前需加0
解释下加0的原因
比如我要给bl个ah的参数
那么
mov bl,ah ;到底是指ah寄存器呢,还是10,编译器不明白
所以
mov bl,0ah
或者直接
mov bl,10
lx2421
[第
3
楼]
[ 回复时间:2010-12-28 00:03 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2010-12-26 17:36
谢谢指点,可能是前面没有好好的复习到,这个知识点我都忘记了,多谢你们的指点
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved