飞驰的麒麟 发表于 2014-1-22 15:35:01

为什么在我的电脑上无法运行?

   学习了小甲鱼的视频,照着打了一遍第九章的那个显示welcome to masm 的程序,可无论怎样编译,程序就是无法显示,求帮助

茗艹莜主 发表于 2014-1-22 15:52:06

我是来混鱼币的,不要看我。

du_fish 发表于 2014-1-22 16:11:18

没图没真相,没代码,,,,神来了也帮不 了你

飞驰的麒麟 发表于 2014-1-22 16:39:27

du_fish 发表于 2014-1-22 16:11 static/image/common/back.gif
没图没真相,没代码,,,,神来了也帮不 了你



无名侠 发表于 2014-1-22 16:42:47


mov ax,4c00h
int 21h
前面加上:
mov al,0
int 16h
这段代码表示 按下任意键 向下执行,这样程序就停下来了,你就有时间看到你输出的内容。{:1_1:}

飞驰的麒麟 发表于 2014-1-22 16:47:48

无名侠 发表于 2014-1-22 16:42 static/image/common/back.gif

mov ax,4c00h
int 21h


加了也没用呢

飞驰的麒麟 发表于 2014-1-22 16:51:31

飞驰的麒麟 发表于 2014-1-22 16:47 static/image/common/back.gif
加了也没用呢

assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"
db 02h,24h,71h
data ends
stack segment
dw 3 dup(0)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx
mov ax,0b372h
mov cx,3
s3:push cx
push ax
push bx
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1:mov al,ds:
mov es:,al
inc si
add di,2
loop s1
mov di,1
pop bx
mov al,ds:10h
inc bx
mov cx,10h
s2:mov es:,al
loop s2
pop ax
add ax,0ah
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start

飞驰的麒麟 发表于 2014-1-22 16:52:03

飞驰的麒麟 发表于 2014-1-22 16:51 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"


难看了些,别介意啊

无名侠 发表于 2014-1-22 16:52:24

飞驰的麒麟 发表于 2014-1-22 16:51 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"


assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"
db 02h,24h,71h
data ends
stack segment
dw 3 dup(0)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx
mov ax,0b372h
mov cx,3
s3:push cx
push ax
push bx
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1:mov al,ds:
mov es:,al
inc si
add di,2
loop s1
mov di,1
pop bx
mov al,ds:10h
inc bx
mov cx,10h
s2:mov es:,al
loop s2
pop ax
add ax,0ah
pop cx
loop s3
mov ax,0
int 16h
mov ax,4c00h
int 21h
code ends
end start

无名侠 发表于 2014-1-22 16:55:35

如果还不行的话
把 mov ax,4c00h
int 21h
替换成 jmp $

飞驰的麒麟 发表于 2014-1-22 16:55:46

无名侠 发表于 2014-1-22 16:52 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"


无名侠 发表于 2014-1-22 16:56:28

反正你要想办法让程序停下来。
还可以:
STOP:jmp STOP

无名侠 发表于 2014-1-22 17:00:31

看来是你的代码不对!

飞驰的麒麟 发表于 2014-1-22 17:00:35

无名侠 发表于 2014-1-22 16:56 static/image/common/back.gif
反正你要想办法让程序停下来。
还可以:
STOP:jmp STOP

新手,求解释为什么小甲鱼可这样,我是照着代码抄下来的

无名侠 发表于 2014-1-22 17:04:07

飞驰的麒麟 发表于 2014-1-22 17:00 static/image/common/back.gif
新手,求解释为什么小甲鱼可这样,我是照着代码抄下来的

我不知道,以前我也遇到这样的问题
学着C语言那里的来的经验,想办法让程序进入死循环,后来学了键盘中断,就直接用键盘中断来暂停程序,不过,你的代码貌似错了。

飞驰的麒麟 发表于 2014-1-22 17:05:24

无名侠 发表于 2014-1-22 17:04 static/image/common/back.gif
我不知道,以前我也遇到这样的问题
学着C语言那里的来的经验,想办法让程序进入死循环,后来学了键盘中断 ...

不可能的,我对了好几遍

无名侠 发表于 2014-1-22 17:07:12

飞驰的麒麟 发表于 2014-1-22 17:05 static/image/common/back.gif
不可能的,我对了好几遍

你按照自己的思路写一次试试。

飞驰的麒麟 发表于 2014-1-22 17:20:52

无名侠 发表于 2014-1-22 17:07 static/image/common/back.gif
你按照自己的思路写一次试试。

我好像找到问题了,就是没有向现存写入
assume cs:code
code segment
mov ax,0b800h
mov ds,ax
mov bx,0
mov word ptr ,0abcdh
mov ax,4c00h
int 21h
code ends
end
代码哪里有问题

lenovolty 发表于 2014-1-24 13:57:09

飞驰的麒麟 发表于 2014-1-22 16:51 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm"


xor bx,bx
mov ax,0b372h
是你打错了吗?应该是0b872h
页: [1]
查看完整版本: 为什么在我的电脑上无法运行?