代码一
DATA SEGMENT
TEN DB 0AH
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MOV AL,01H
MUL TEN
CODE ENDS
运行结果为 AL = 50H
代码二
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MOV [0000H],10
MOV AL,01H
MUL [0000H]
CODE ENDS
运行结果正确 为AL = 0AH
为什么会出现这种情况?
我初学汇编,学的是MASM的语法,发现有一些在emu8086上运行不成功,求解释。
汇编
------解决方案--------------------
你的程序本身就有问题吧。首先没有 end start 这样的语句来说明程序从 start: 标号处开始运行;其次,没有设置正确的 DS 指向 DATA 数据段。试试下面的代码?
DATA SEGMENT
TEN DB 0AH
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
start:
mov ax, DATA
mov DS, ax
MOV AL,01H
MUL TEN
mov ah, 4ch
int 21h
CODE ENDS
end start