|
主题 : : 实验9,请各位大大指点! [待解决] |
回复[ 9次 ]
点击[ 267次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-12-18 15:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-12-03 15:01 |
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov di,0b86Eh
mov ss,di
mov bp,48h
mov cx,16
s:mov al,[bx]
mov [bp],al
mov [bp+0a0h],al
mov [bp+140h],al
mov al,02h
mov [bp+1h],al
mov al,24H
mov [bp+0a1h],al
mov al,71h
mov [bp+141H],al
add bp,2
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-12-18 16:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
按照你的思路改了一下,呵呵
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov ax,0b86eh
mov es,ax
mov bp,48h
mov cx,16
s:
mov al,[bx]
push ds
push bx
push es
pop ds
push bp
pop bx
mov [bx],al
mov [bx+0a0h],al
mov [bx+140h],al
mov al,02h
mov [bx+1h],al
mov al,24H
mov [bx+0a1h],al
mov al,71h
mov [bx+141H],al
add bp,2
pop bx
pop ds
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-12-18 16:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-12-03 15:01 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-12-18 18:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
|
|
|
|
|
[第4楼]
[ 回复时间:2010-12-18 23:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-12-03 15:01 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-12-19 00:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
请问你是不是把代码贴错了,你的代码不管是不是在DEBUG下,我都运行不出效果...
你再把你的这个代码验证下吧,看看你是不是贴错了
另外,你调试通过了,有看到效果么?我用你的代码始终看不到效果...,而且DEBUG下还报错..... | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-12-19 00:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
而且我觉得就你贴上来的代码DEBUG一定是不成功
ss:0b86eh
sp:默认是0
-t时候sp->0fffe
保存的数据
ss*10h+sp>0c0000h
等于你写ROM了,那样还不报错么,真的感觉你可能贴错了,你再仔细查一查吧.
别人大都是用es来做的,不知道你为什么一定要用ss,呵呵.
如果你的机器上DEBUG确实是对的,能把截图和你编译好的EXE文件打包发我邮件么,asmedu@126.com,感谢. | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-12-19 19:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-12-03 15:01 |
而且我觉得就你贴上来的代码DEBUG一定是不成功
ss:0b86eh
sp:默认是0
-t时候sp->0fffe
保存的数据
ss*10h+sp>0c0000h
等于你写ROM了,那样还不报错么,真的感觉你可能贴错了,你再仔细查一查吧.
别人大都是用es来做的,不知道你为什么一定要用ss,呵呵.
如果你的机器上DEBUG确实是对的,能把截图和你编译好的EXE文件打包发我邮件么,asmedu@126.com,感谢.
------------------
回复:在XP下真的过不了...在WIN7下的CMD下能通过...我也不知道为什么...至于用SS是因为BP能默认SS作为段谢谢您!!!
不过在XP下出错也不是你说的那样子...
DEBUG 在执行到
0BB0:000B 8ED0 MOV SS,DI 用T运行到这里下一条就变成下面这样子了..为什么呢?
0840:E859 B9FFFF MOV CX,FFFF
在WIN7的CMD下真的能通过,晚点截图给你.. | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-12-19 22:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
你把能运行通过的EXE文件能打包成RAR文件mail我么,呵呵. | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-12-20 00:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
试过了,确实你的代码在xp上会有问题,我看了你的exe文件,你贴的代码和exe吻合,win7我还没试,希望其他有win7的朋友也能试一试这段代码,呵呵. | | |
|