鱼C论坛

 找回密码
 立即注册
查看: 6071|回复: 8

[汇编作业] 关于实验十二不明白的内存报错

[复制链接]
发表于 2017-5-23 10:12:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code
code segment
start:       mov ax,cs
                mov ds,ax
                mov si,offset p1
               
                mov ax,0
                mov es,ax
                mov di,200h
               
                mov cx,offset p1end-offset p1
               
                cld
                rep movsb
               
                mov ax,0
                mov es,ax
                mov word ptr es:[0*4],200h
                mov word ptr es:[0*4+2],0
               
                mov ax,4c00h
                int 21h
               
p1:          jmp short p2
                db 'ERROR!'

p2:          mov ax,cs
                mov ds,ax
                mov si,202h
               
                mov ax,0b800h
                mov es,ax
                mov di,2*160+0*2
               
                mov cx,6
show:      push cx
                mov cl,1010b
                mov al,[si]
                mov es:[di],al
                mov es:[di+1],cl
                inc si
                inc di                                ;这两个inc改成add di,2就没有事了。可以正常运行!
                inc di                                ;
                pop cx
                loop show

p1end:        nop
code ends
end start

执行后会报错。
微信图片_20170523095607.png
如果把标号show处的两个inc di改成add di,2却能正常运行,始终不知道是为什么。也许可能还有其他的原因?小白不解。
微信图片_20170523101042.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-23 10:15:28 | 显示全部楼层
在线等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-23 10:29:46 | 显示全部楼层
微信图片_20170523102803.png
╮(╯_╰)╭纠结纠结ing……
来个大神帮小弟解答吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-23 13:12:29 | 显示全部楼层
iret
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-23 13:13:57 | 显示全部楼层
  1. assume cs:code

  2. code segment
  3. start:


  4. ;int 0

  5. ;mov ax, 4c00h
  6. ;int 21h



  7.         mov ax, cs
  8.         mov ds, ax
  9.         mov si, offset p1

  10.         mov ax, 0
  11.         mov es, ax
  12.         mov di, 200h

  13.         mov cx, offset p1end - offset p1

  14.         cld
  15.         rep movsb

  16.         mov ax, 0
  17.         mov es, ax
  18.         mov word ptr es:[0 * 4], 200h
  19.         mov word ptr es:[0 * 4 + 2], 0

  20.         mov ax, 4c00h
  21.         int 21h

  22. p1:
  23.         jmp short p2
  24.         db 'ERROR!'

  25. p2:
  26.         mov ax, cs
  27.         mov ds, ax
  28.         mov si, 202h

  29.         mov ax, 0b800h
  30.         mov es, ax
  31.         mov di, 2 * 160 + 0 * 2

  32.         mov cx, 6
  33. show:
  34.         push cx
  35.        
  36.         mov cl, 1010b
  37.         mov al, [si]
  38.         mov es:[di], al
  39.         mov es:[di + 1], cl
  40.         inc si
  41.        
  42.         inc di                                ;这两个inc改成add di,2就没有事了。可以正常运行!
  43.         inc di                                ;
  44.        
  45.         pop cx
  46.         loop show
  47.        
  48.         iret ; 中断返回

  49. p1end:
  50.         nop

  51. code ends
  52. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-23 22:54:56 | 显示全部楼层

谢谢版主的细心回答。待我有空回去再去瞅瞅,不会,继续补刀哈!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-23 22:56:31 | 显示全部楼层
kyowjw01 发表于 2017-5-23 22:54
谢谢版主的细心回答。待我有空回去再去瞅瞅,不会,继续补刀哈!

^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-23 22:56:59 | 显示全部楼层
第一次发帖,不知道如何回复,删了自己的回复贴,扣了一点荣誉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-3 07:43:22 | 显示全部楼层
我现在准备做这个实验来看看做的人多不多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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