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

这个程序为什么会出错

longxies 发布于 2007-12-01 23:00, 1648 次点击
data segment
   data ends
    code segment
    assume cs:code,ds:data
 start: mov ax,0b800h
        mov ds,ax
        mov al,'a'
        mov [0010],al
        mov dl,3
        mov ah,02h
        int 21h
        mov ah,4ch
        int 21h
  code  ends
       end start
运行时总是指示 MOV [0010],AL 出错,必须加上段超越前缀才不会出错(DS:),但是书上讲,程序会默认段地址在DS中的
为什么会出错呢?不明白!11
6 回复
#2
wubizao2007-12-01 23:12
mov [0010],al
好像不能直接这样写
应该加上段前缀
不知道说得对不对
#3
Richard2007-12-02 01:05
那种用法只能在Debug下使用, 用MASM编译就必须在前面加段地址.
#4
kr^zHaYj2007-12-02 07:52
你 定义了 个 DS 段, 有把 DS 还不是  data 段.
mov ax,data
mov ds,ax
#5
xiejiwang2222007-12-05 00:27
这问题我也不太明白
但是要是在前加个mov si,0010
                                mov [si],al
程序也没问题
#6
longxies2007-12-21 09:53
谢谢大家,现在我已经明白了
#7
麦嘟2007-12-25 15:59






--------------------------------------------------------------
[url=http://www.]全新的自助链接交换系统[/url]
1