回 帖 发 新 帖 刷新版面

主题:汇编的问题

data segment
x db 56h
y db ?
data ends
code segment
assume cs:code
start:    mov ax,data
    mov ds,ax
    mov al,x
    mov ax,4c00h
    int 21h
code ends
    end start
这个能通过


data segment
x db 56h
y db ?
data ends
code segment
assume cs:code
start:    mov ax,data
    mov ds,ax
    mov al,x+0     ;cannot address with segment register
    mov ax,4c00h
    int 21h
code ends
    end start
这个就不行,出现错误

回复列表 (共2个回复)

沙发

你弄错了,不仅第二段代码,连第一段代码也是错误的。你没有assume ds段,汇编程序不知道你把那个段与ds段联系起来,改为assume cs:code, ds:data

板凳

我是有意不assume ds:data,为了了解如何汇编

问题是
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987.  All rights reserved.

Source filename [.ASM]: ta
Object filename [ta.OBJ]:
Source listing  [NUL.LST]: ta
Cross-reference [NUL.CRF]:

  50360 + 416200 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
MASM汇编通过
并且debug 后发现AL=56H

我来回复

您尚未登录,请登录后再回复。点此登录或注册