|
主题 : : 请高手看看程序第5行哪里错了 [已解决] |
回复[ 5次 ]
点击[ 323次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-10-16 09:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-10-06 22:52 |
assume cs:aa
aa segment
mov ax,0ffffh
mov ds,ax
mov [6],0ah;第5行
mov ax,[6]
mov dx,0h
mov cx,3
s:add dx,ax
loop s
mov ax,4c00h
int 21h
aa ends
end
masm报错:
53.ASM<5>:error A2056:Immediate mode illegal | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-10-16 10:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2011-09-29 11:23 |
|
|
|
|
|
[第2楼]
[ 回复时间:2011-10-16 11:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-10-06 22:52 |
修改了一下,这次是第6行报同样的错
assume cs:aa
aa segment
mov ax,0ffffh
mov ds,ax
mov bl,0ah
mov [6],bl;第6行
mov al,[6]
mov ah,0
mov dx,0
mov cx,3
mov dx,0
s:add dx,ax
loop s
mov ax,4c00h
int 21h
aa ends
end | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-10-16 11:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-10-06 22:52 |
assume cs:aa
aa segment
mov ax,0ffffh
mov ds,ax
mov bl,0ah
mov ds:[6],bl;第6行
mov al,[6]
mov ah,0
mov dx,0
mov cx,3
mov dx,0
s:add dx,ax
loop s
mov ax,4c00h
int 21h
aa ends
end
再次修改后,编译通过了。运行结果不对,dx应该为1eh,实际结果却是12h,怎么回事? | | |
|
|
|
|
[第4楼]
[ 回复时间:2011-10-16 16:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:1
注册日期:2011-06-04 00:01 |
mov al,[6] 编译器会认为你将6送给AL 所以导致结果是12 另外:主板的生产日期存储在内存ffff:0005~ffff:000C处,不能被改变的。你为什么偏偏要用这段内存空间呢? | | |
|
|
|
|
[第5楼]
[ 回复时间:2011-10-23 14:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2011-10-06 22:52 |
此贴由 贴主 于 [ 2011-10-23 14:11 ] 结贴。 结贴原因:问题已解决 | | |