死活编译不通过,甲鱼哥的第七章最后一小节,把前四个字母变成大写
本帖最后由 有你更完美 于 2011-7-7 17:42 编辑assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1.display '
db '2.brows '
db '3.replace '
db '4.modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,4
s0: push cx
mov si,0
mov cx,4
s: mov al,
and al,11011111b
mov ,al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
提示以下错误
Microsoft (R) Macro Assembler Version 6.15.8803
Patched for you by promethee in the year 2001 - enjoy
Copyright (C) Microsoft Corp 1981-2000.All rights reserved.
Assembling: 3.asm
error A4910: cannot open file: F:\TRY\7\ML.err
3.asm(25) : error A2070:
3.asm(27) : error A2070: error A4910: cannot open file: F:\TRY\7\ML.err
3.asm(25) : error A2070:
3.asm(27) : error A2070:
第一个提示error 是错误 在第25行代码和27行代码有错误 就是在pushcx 是压栈 但后后边你又跟上去mov cx,4 既然数据已经压栈了 不先拿出来这么用呢? 前面加入ds:试试,还不行的话,那分别要加入ds:和es了。
还有你写的数据段,是从第3个开始改,+3那就从第4个开始改了。
mov al, 格式 改成: mov al,就行了,貌似以前也有人问过 什么原因也没说清楚
幕府幽魂 发表于 2011-6-27 09:12 static/image/common/back.gif
mov al, 格式 改成: mov al,就行了,貌似以前也有人问过 什么原因也没说清楚
对的,把改成就可以了,这个代码都是抄小甲鱼的。郁闷,也不知道什么原理,他明明说这样可以访问的。谢谢各位的热心回答。{:1_1:}
嗜血丨灵异狂 发表于 2011-6-27 05:13 static/image/common/back.gif
就是在pushcx 是压栈 但后后边你又跟上去mov cx,4 既然数据已经压栈了 不先拿出来这么用呢? ...
这个是对的哦,它有两层循环,所以要保存外层循环的CX,到栈里面,等内循环执行完了,在从栈里把CX取出来,这可是小甲鱼,第七章特别强调的哦
king嗜血法师 发表于 2011-6-27 06:08 static/image/common/back.gif
前面加入ds:试试,还不行的话,那分别要加入ds:和es了。
还有你写的数据段,是从第3个开始改,+3那就从第4 ...
有道理,但是甲鱼的视频时+3的,是不是甲鱼哥忽略了能
mov al,改为 mov al,
mov ,al改为mov ,al {:1_1:}
是你数据段不是和书上一样的,我记得书上'1. display '1.后面有个空格,重在理解,不要去照葫芦画瓢。 有你更完美 发表于 2011-6-27 09:26 static/image/common/back.gif
对的,把改成就可以了,这个代码都是抄小甲鱼的。郁闷,也不知道什么原理,他明明说这样可以访问的。谢谢 ...
个人理解可能是编译器的问题,老师讲的应该没错吧 解决啦,谢谢大家了
页:
[1]