鱼C论坛

 找回密码
 立即注册
查看: 3682|回复: 3

关于实验9,我到底哪里错了?求助!更新了新写的第二段代码还是不行!!!

[复制链接]
发表于 2011-6-28 15:47:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xxasy 于 2011-6-30 08:34 编辑
  1. assume cs:code,ds:data

  2. data segment
  3. db'welcome to masm! ','2h,24h,71h',0,0
  4. data ends
  5. code segment
  6. start: mov ax,data
  7. mov ds,ax
  8. mov ax,0b800h
  9. mov es,ax
  10. mov di,0
  11. mov si,0
  12. mov bx,0
  13. mov ax,data
  14. mov ss,ax
  15. mov sp,0
  16. add sp,22
  17. mov cx,3
  18. s: push cx
  19. mov cx,16
  20. s1: mov al,byte ptr ds:[si]
  21. mov ah,byte ptr ds:[di+16]
  22. mov es:[bx],ax
  23. add bx,2
  24. inc si
  25. loop s1
  26. inc di
  27. add bx,128
  28. pop cx
  29. loop s
  30. mov ax,4c00h
  31. int 21h
  32. code ends
  33. end start
复制代码
我到底哪里错了?为什么debug看不到字体的颜色什么的?
我又从新写了一遍。。编译通过,可以运行。单步调试。被机器给踢出来了。貌似动了微软的奶酪了。到底怎么个情况啊。。


  1. assume cs:code,ds:data,cs:stack

  2. data segment
  3. db'welcome to masm!'
  4. db'02h,24h,71h'
  5. data ends

  6. stack segment
  7. dw 8 dup (0)
  8. stack ends

  9. code segment
  10. start: mov ax,data
  11. mov ds,ax
  12. mov ax,stack
  13. mov ss,ax
  14. mov sp,10h
  15. mov di,0
  16. mov ax,0b872h
  17. mov cx,3


  18. s: push cx
  19. push ax
  20. mov bx,0
  21. mov si,0
  22. mov es,ax
  23. mov cx,16
  24. s1: mov dl,ds:[si]
  25. mov dh,ds:[di+16]
  26. mov es:[bx],dx
  27. inc si
  28. add bx,2
  29. loop s1
  30. pop ax
  31. add di,1
  32. add ax,0Ah
  33. pop cx
  34. loop s1
  35. mov ax,4c00h
  36. int 21h
  37. code ends
  38. end start
复制代码

谢谢大家。
在cmd中运行后的结果.jpg
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-6-28 22:20:41 | 显示全部楼层
楼主 我想是第22行那吧  你怎么能用[si+16]呢  这样的话 当你第二次循环得到的就是24   第三次就是71  第四次就是0  然后又是0   接着就无法预测了、、、、
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-6-29 23:02:40 | 显示全部楼层
循环逻辑上出现错误,我也是第一次回答,回答不好请见谅!
显示颜色地址的变量只需要增加3次,你放入了s1的循环中,你看下你cx的值为16,16的循环是索引字母的,不能和颜色变量放在一起!{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-6-30 01:17:11 | 显示全部楼层
本帖最后由 king嗜血法师 于 2011-6-30 01:20 编辑

loop s1

pop ax

add di,1

add ax,0Ah

pop cx

loop s1
第2个loop 跳到s 不是 s1
你的代码可以优化一下,把es不加到循环试试,可以省去push ax了
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-22 01:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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