注册 登录
编程论坛 汇编论坛

关于mov的一个新手的问题

wingfeng 发布于 2009-09-23 14:32, 1103 次点击
如下代码:
MOV AX,DATA
MOV DS,AX
请问,这里的data是立即数还是内存数啊??如果是内存数的话为什么不直接MOV DS,DATA,希望说明下,谢谢!
7 回复
#2
onepc2009-09-23 15:14
是立即数。应是某个地址。。内存数指的是什么???
段寄存器不支持立即数mov的。所以要借用别的寄存器
#3
wingfeng2009-09-23 19:48
我说的内存数是指存放在存储器里的数,请问立即数不是指数字吗?而data好像是个变量的样子??为什么他是立即数啊??
#4
zklhp2009-09-23 20:11
就是 mov ax,seg data

编译后会变成一个立即数~~~
#5
zklhp2009-09-23 20:17
只有本站会员才能查看附件,请 登录

#6
zklhp2009-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
wingfeng2009-09-25 14:19
这样啊,谢谢了,终于明白了,呵呵!!
版主很厉害啊,以后多多请教!
#8
阿贝2009-10-23 23:23
MOV   AX,DATA     ;把数据段DATA   的首地址赋给AX   
MOV   DS,AX       ;再把AX赋给DS  (很明显DS   就是   数据段寄存器   )   
1