编程论坛
注册
登录
编程论坛
→
汇编论坛
关于mov的一个新手的问题
wingfeng
发布于 2009-09-23 14:32, 1103 次点击
如下代码:
MOV AX,DATA
MOV DS,AX
请问,这里的data是立即数还是内存数啊??如果是内存数的话为什么不直接MOV DS,DATA,希望说明下,谢谢!
7 回复
#2
onepc
2009-09-23 15:14
是立即数。应是某个地址。。内存数指的是什么???
段寄存器不支持立即数mov的。所以要借用别的寄存器
#3
wingfeng
2009-09-23 19:48
我说的内存数是指存放在存储器里的数,请问立即数不是指数字吗?而data好像是个变量的样子??为什么他是立即数啊??
#4
zklhp
2009-09-23 20:11
就是 mov ax,seg data
编译后会变成一个立即数~~~
#5
zklhp
2009-09-23 20:17
只有本站会员才能查看附件,请
登录
#6
zklhp
2009-09-23 20:17
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件
.model small
data segment
aa dd 1h
data ends
codesg segment
start:
mov ax,seg data
mov ds,ax
mov ax,4c00h
int 21h
codesg ends
end start
这个的~~~
#7
wingfeng
2009-09-25 14:19
这样啊,谢谢了,终于明白了,呵呵!!
版主很厉害啊,以后多多请教!
#8
阿贝
2009-10-23 23:23
MOV AX,DATA ;把数据段DATA 的首地址赋给AX
MOV DS,AX ;再把AX赋给DS (很明显DS 就是 数据段寄存器 )
1