当前位置: 代码迷 >> 汇编语言 >> 求大神帮助!分析一下一个简单的汇编程序!新手
  详细解决方案

求大神帮助!分析一下一个简单的汇编程序!新手

热度:309   发布时间:2016-05-02 04:52:25.0
求大神帮助!分析一下一个简单的汇编程序!新手求助
求哪位大神能分析一下为什么会出现这个结果,还有最上边那一部分是什么意思。小弟在这里谢过了!

DSEG SEGMENT
x dw 5
result dw ?              
DSEG ENDS
ESEG SEGMENT
ESEG ENDS
CSEG SEGMENT
  
ASSUME  CS:CSEG, DS:DSEG, ES:ESEG, SS:SSEG
              
start:    MOV AX, dseg
  MOV DS, AX
  MOV ES, AX


           
mov ax,5
mul x
add ax,4
mul x
sub ax,3
mul x
add ax,2
mov result,ax
mov ah,1
int 21h
mov ah,2
int 21h
mov ah,4ch
int 21h
  
              
CSEG ENDS

END start
汇编 求助

------解决方案--------------------
这里怎么说呢,你这个应该都不能执行的,也不知道你想实现什么功能的。
这么说吧:

DSEG SEGMENT
DSEG ENDS
中间是存放数据的。
ESEG是定义堆栈的,用来存放临时数据的,或中断地址的。
CSEG是用来放代码的。
ASSUME  CS:CSEG, DS:DSEG, ES:ESEG, SS:SSEG 是告诉编译器用cs存代码首地址,ds数据首地址,ss堆栈首地址。

mov ah,1
int 21h
是输入数据存储在al中

mov ah,2
int 21h
为2号功能调用是输出dl内的ASCII码。
因为你没定义dl中的数据可能就输出原来存储的了。