实验9出现16位MS-DOS子系统错误,急求大牛赐教!
本帖最后由 destiny 于 2012-9-5 09:48 编辑assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm'
db2H,24H,71H
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax, data
mov ds, ax
mov ax, stack
mov ss, ax
mov sp, 10H
mov ax, 0B872H
mov bx, 0
mov si, 0 ;定义字符串偏移地址
mov di, 0
mov cx, 3 ;外层循环
s1:push cx
push ax
mov es, ax
mov cx, 16
s:mov al, ;内层循环设置字符串 3行一起设置了
mov es:, al
add di, 2
inc si
loop s
pop ax
add ax,0aH
pop cx
loop s1
mov ax, 0B872H
mov es, ax
mov cx, 3
mov bx, 0
s3:push cx
push ax
mov di, 1
mov cx, 10H
mov al, ;索引到颜色后传送给al
s2:mov es:, al ;这里就开始设置颜色属性一样3个一起设置了
add di, 2
loop s2
pop ax
add ax, 0aH ;进入下一行
inc bx ;索引下一个颜色字节
pop cx
loop s3
mov ax, 4c00H
int 21
code ends
end start
请大牛解释下是我编程代码出现问题了还是系统存在问题如果代码有问题 请大牛详细解释下再次感谢。
还有就是我把小甲鱼在视频里的那段代码也照着写了。编译完运行还是这个错误 如果我的代码有问题 那甲鱼老师在视频里还是可以显示的,我编译完运行就显示错误郁闷就郁闷在这里了
assume cs:codesg, ds:datasg
datasg segment
db 'welcome to masm!'
datasg ends
codesg segment
start: mov ax, datasg
mov ds, ax
mov ax, 0b800h
mov es, ax
mov cx, 16
mov di, 0
mov bx, 0
color:mov bp, 0aa0h
mov al,
mov es:, al
mov byte ptr es:, 02h
mov bp, 0b40h
mov al,
mov es:, al
mov byte ptr es:, 24h
mov bp, 0be0h
mov al,
mov es:, al
mov byte ptr es:, 71h
inc bx
add di, 2
loop color
mov ax, 4c00h
int 21h
codesg ends
end start
呵呵楼主
你的程序存在错误哦~ 我以修正了~
如有问题请联系我,我的个性签名有我qq
梦幻羽羽 发表于 2012-9-4 20:47 static/image/common/back.gif
80X25有80列 25行 要求居中也就是说这三行代码是保存在 第12 13 14行也要在列里居中也就是说要从第12行开始+列中的居中的偏移量 第12行的地址是0B86E0H还在要列中居中 字符串占16字节 属性颜色占16 ,也就是说前面要隔开64个字节中间是字符串和颜色 后面在隔开64字节 这样才对! 你的代码有问题 ...你自己编译下就知道了 还有就是你没理解清楚。 你好好去看书上的解释 还有就是我的代码是100%没问题, 我纳闷的是你纠结寻址方式~ 梦幻羽羽 发表于 2012-9-5 12:49 http://bbs.fishc.com/static/image/common/back.gif
还有就是我的代码是100%没问题, 我纳闷的是你纠结寻址方式~
我感觉你这个程序的思路好强大,代码优化的也比较少! 但是你要考虑下我这个新手 !我的思路就是把所有的字符串全写进去然后下面一个循环把颜色全写进去其实思路上也没有错但是在实际操作中出现了错误 请你这位大牛帮我分析下代码 到底是错在了什么地方毕竟你写的代码是你的 我自己写出来 搞明白了才是自己的知识 以后再碰到这种问题我也会解决了再次感谢你 梦幻羽羽 发表于 2012-9-4 20:47 static/image/common/back.gif
代码写的也不够完美,这个是显示3种颜色,要是显示3万种颜色呢?您的写到什么时候? 本帖最后由 walykyy 于 2012-9-6 11:04 编辑
楼主太不认真了,你看小甲鱼的视频也没仔细看吧,我简单看了一下漏洞百出,错误太多
http://www.asmedu.net/blog/user/usermain.jsp?neighborId=37937我的博客可以看下我写的,简单易懂,有注释告诉你一个简单的思路:你可以先welcome to masm!打印在中间,然后添加一种颜色,没有问题后,在打印3次welcome to masm!,都显示一种颜色,在更换成3种颜色
代码写的也不够完美,这个是显示3种颜色,要是显示3万种颜色呢?您的写到什么时候?
楼主我问个问题,你认为会用这种方式来写吗? 这只是前期, 只是让你熟悉寻址和 了解下b800这个段地址里的功能, 如果你是来找毛病的对不起, 我无法回答, 你的问题太深奥, 在下不知道怎么回答,
3万种颜色呢? 呵呵,你是说开发什么大型软件,还是真是问个问题? 梦幻羽羽 发表于 2012-9-6 18:56 static/image/common/back.gif
楼主我问个问题,你认为会用这种方式来写吗? 这只是前期, 只是让你熟悉寻址和 了解下b800这个 ...
博客进不去 也注册不了
页:
[1]