鱼C论坛

 找回密码
 立即注册
查看: 2164|回复: 11

实验9出现16位MS-DOS子系统错误,急求大牛赐教!

[复制链接]
发表于 2012-9-4 08:30:12 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 destiny 于 2012-9-5 09:48 编辑

assume cs:code,ds:data,ss:stack

data segment
   db 'welcome to masm'
   db  2H,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, [si]               ;内层循环设置字符串 3行一起设置了   
    mov es:[di], 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, [bx+10H]    ;索引到颜色后传送给al
   
    s2:mov es:[di], 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
   
   
    请大牛解释下是我编程代码出现问题了还是系统存在问题  如果代码有问题 请大牛详细解释下  再次感谢。
    还有就是我把小甲鱼在视频里的那段代码也照着写了。编译完运行还是这个错误 如果我的代码有问题 那甲鱼老师在视频里还是可以显示的,我编译完运行就显示错误  郁闷就郁闷在这里了
   
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-4 08:30:13 | 显示全部楼层
  1. assume cs:codesg, ds:datasg
  2. datasg segment
  3. db 'welcome to masm!'
  4. datasg ends
  5. codesg segment
  6. start: mov ax, datasg
  7.        mov ds, ax
  8.            mov ax, 0b800h
  9.            mov es, ax
  10.            mov cx, 16
  11.            mov di, 0
  12.            mov bx, 0
  13. color:mov bp, 0aa0h
  14.        mov al, [bx]
  15.        mov es:[bp+di+30], al
  16.        mov byte ptr es:[bp+di+31], 02h
  17.            mov bp, 0b40h
  18.            mov al, [bx]
  19.            mov es:[bp+di+30], al
  20.            mov byte ptr es:[bp+di+31], 24h
  21.            mov bp, 0be0h
  22.            mov al, [bx]
  23.            mov es:[bp+di+30], al
  24.            mov byte ptr es:[bp+di+31], 71h
  25.            inc bx
  26.            add di, 2
  27.            loop color
  28.            mov ax, 4c00h
  29.            int 21h
  30. codesg ends
  31. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-4 20:45:23 | 显示全部楼层
呵呵  楼主

你的程序存在错误哦~     我以修正了~

如有问题  请联系我,  我的个性签名有我qq
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-5 08:22:16 | 显示全部楼层

80X25  有80列 25行 要求居中  也就是说这三行代码是保存在 第12 13 14行  也要在列里居中  也就是说要从第12行开始+列中的居中的偏移量   第12行的地址是0B86E0H  还在要列中居中 字符串占16字节 属性颜色占16 ,也就是说前面要隔开64个字节  中间是字符串和颜色 后面在隔开64字节 这样才对! 你的代码有问题  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-5 12:39:24 | 显示全部楼层
...  你自己编译下就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-5 12:40:16 | 显示全部楼层
还有就是你没理解清楚。   你好好去看书上的解释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-5 12:49:42 | 显示全部楼层
还有就是  我的代码是100%没问题,   我纳闷的是你纠结  寻址方式  ~   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-6 09:09:00 | 显示全部楼层
梦幻羽羽 发表于 2012-9-5 12:49
还有就是  我的代码是100%没问题,   我纳闷的是你纠结  寻址方式  ~


我感觉你这个程序的思路好强大,代码优化的也比较少! 但是你要考虑下我这个新手 !  我的思路就是把所有的字符串全写进去  然后下面一个循环把颜色全写进去  其实思路上也没有错  但是在实际操作中出现了错误 请你这位大牛帮我分析下代码 到底是错在了什么地方  毕竟你写的代码是你的 我自己写出来 搞明白了才是自己的知识 以后再碰到这种问题我也会解决了  再次感谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-6 10:30:17 | 显示全部楼层

代码写的也不够完美,这个是显示3种颜色,要是显示3万种颜色呢?您的写到什么时候?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-6 11:02:02 | 显示全部楼层
本帖最后由 walykyy 于 2012-9-6 11:04 编辑

楼主太不认真了,你看小甲鱼的视频也没仔细看吧,我简单看了一下漏洞百出,错误太多

http://www.asmedu.net/blog/user/usermain.jsp?neighborId=37937  我的博客可以看下我写的,简单易懂,有注释告诉你一个简单的思路:你可以先welcome to masm!打印在中间,然后添加一种颜色,没有问题后,在打印3次welcome to masm!,都显示一种颜色,在更换成3种颜色
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-9-6 18:56:22 | 显示全部楼层
代码写的也不够完美,这个是显示3种颜色,要是显示3万种颜色呢?您的写到什么时候?


楼主我问个问题,  你认为会用这种方式来写吗?   这只是前期,   只是让你熟悉寻址和 了解下  b800这个段地址里的功能,   如果你是来找毛病的对不起,   我无法回答,    你的问题太深奥, 在下不知道怎么回答,
3万种颜色呢?      呵呵,  你是说开发什么大型软件,  还是真是问个问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-7 09:58:38 | 显示全部楼层
梦幻羽羽 发表于 2012-9-6 18:56
楼主我问个问题,  你认为会用这种方式来写吗?   这只是前期,   只是让你熟悉寻址和 了解下  b800这个 ...

博客进不去 也注册不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-27 08:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表