|
主题 : : 请帮我看看为什么编译通不过 [已解决] |
回复[ 9次 ]
点击[ 402次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-03-04 15:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
为什么??我哪里错了??找了半天都找不出哪里有错 请路过的神仙给我当头一棒吧
assume cs:codesg,ss:stacksg,ds:datasg
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,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,10h
mov bx,3h
mov cx,4
push cx
s:mov si,0
mov cx,4
s1:mov al,[bx+si]
and al,11011111h
mov [bx],al
inc si
loop s1
pop cx
add bx,10h
loop s
mov ax,4c00h
int 21h
codesg ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-03-04 16:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
自己发现一处错误 S1下第三行改为mov [bx+si],al 可还是没通过 郁闷 继续找 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-03-04 16:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
又一处 没把PUSH循环进去 改 ……还是没通过 要哭了 继续找 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-03-04 16:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
and al,11011111h
---
这里用h,值太大了,al放不下;)
上面楼主自己找出的错误不是编译错误。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-03-04 16:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
下面是编译器提示的错误原因,楼主要习惯于看这个信息,调试程序比写程序还重要呢o(∩_∩)o...
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
0.ASM(23): error A2029: Division by 0 or overflow
50790 + 446378 Bytes symbol space free
0 Warning Errors
1 Severe Errors | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-03-04 16:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
为什么你们的有0.ASM(23): error A2029: Division by 0 or overflow
50790 + 446378 Bytes symbol space free
0 Warning Errors
1 Severe Errors
而我的直接一闪而过 什么也看不清就没了 | | |
|
|
|
|
[第6楼]
[ 回复时间:2008-03-04 16:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
编译错误没有了,如果还有错就剩下逻辑错误了。
我的习惯是从简到繁写程序,比如这个程序,先对一个字符串操作再进行四次循环。debug跟踪是调试逻辑错误不错的选择。 t命令 g命令 以后还会用到的p命令等等 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-03-04 16:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
汗 终于过了 就一个进制代号错了 害我晕呼半天 不过找错误好象收获更大 哈哈 | | |
|
|
|
|
[第8楼]
[ 回复时间:2008-03-04 16:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
不要用集成环境,按照书上第四章的步骤编译连接程序。
不是集成环境不好,而是集成环境不适合初学者,屏蔽了很多东西,并且出的问题也有可能是集成环境的问题而非程序的。Division by 0 or overflow 这个错误信息在集成环境下可能会被制作集成环境的人写成其他的提示信息。不过很多高手真正调试程序的时候都不用集成环境。 | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-03-07 23:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-03-01 17:14 |
此贴由 贴主 于 [ 2008-03-07 23:37 ] 结贴。 结贴原因:问题已解决 | | |