当前位置: 代码迷 >> 汇编语言 >> emu8086小程序运行有关问题
  详细解决方案

emu8086小程序运行有关问题

热度:405   发布时间:2016-05-02 04:55:01.0
emu8086小程序运行问题
本帖最后由 scutlpf 于 2013-04-15 21:06:51 编辑
代码一

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