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

masm5.0

yt414204458 发布于 2010-05-25 13:12, 1259 次点击
程序1:data segment
      buf  db 'welcome to microcomputer labratory!','$'
data ends
    code segment
        assume ds:data,cs:code
begin:mov ax,data
      mov ds,ax
      mov dx,offset buf
      mov ah,09h
      int 21h
  code ends
end begin
程序2:data     segment
s1       db'welcome to microcomputer laboratory','$'
data     ends
stack    segment para stack
         db 64 dup(?)
stack    ends
code     segment
         assume  cs:code,ds:data,ss:stack
start:   mov ax,data
         mov ds,ax
         mov ah,9
         mov dx,offset s1
         int 21h
         mov ah,4ch
         int 21h
code     ends
         end start
         
第一个程序是我自己写的,第二个程序是老师给的,我的程序不对,请看图
我想知道为什么有的程序编译完出现.exe文件后能直接运行就能出来答案,有的却需要用debug命令才能显示内容呢,老师说不太清楚,能不能给完整的解释一下
还想知道我的程序错在哪里了,为什么运行了没有反应
 
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
      
6 回复
#2
zklhp2010-05-25 17:44
是不是该用command~

#3
ONEPROBLEM2010-05-25 23:45
会不会是你的程序没有正常退出(结束),以至运行到了错误的地方去了,所以无法正常显示结果呢?
建议像您老师的程序那样,在后面加:
mov ah,4ch
int 21h

#4
yt4142044582010-05-26 12:54
回复 2楼 zklhp
command也是不行的啊,cmd和command有什么区别啊,就感觉界面上有点不同而已,3楼那位说最好加个返回,那个返回重要吗?我搜了点东西,那个只是返回DOS,按任意键退出的作用吧
#5
yt4142044582010-05-26 12:55
回复 3楼 ONEPROBLEM
你也不清楚问题确实出现在哪吗?其实我的那个程序运行的时候显示过一次的,但是里面还有一些乱码,以后运行就怎么都显示不了了
#6
mudaoren2010-05-26 23:37
stack    segment para stack
         db 64 dup(?)
stack    ends

可能是你在下面这块错了                                       mov ds,ax
 您老师的程序        mov ah,9                      您的程序 mov dx,offset buf
                                                            mov ah,09h
                                                            int 21h
                     mov dx,offset s1
                     int 21h
                     mov ah,4ch
                     int 21h
#7
yt4142044582010-05-27 23:25
回复 6楼 mudaoren
这哪有问题啊,我就是没有加个返回DOS,上面那个DOS调用没有问题吧?
1