鱼C论坛

 找回密码
 立即注册
查看: 3401|回复: 1

第七章,问题7.2的一个简单的小疑惑

[复制链接]
发表于 2011-4-18 15:33:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 loop 于 2011-4-20 01:33 编辑

问题7.2。关于寄存器DI和SI


用寄存器SI和DI实现将字符串‘welcome to masm!’复制到它后面的数据区中。
  1. assume cs:codesg,ds:datasg
  2.     datasg segment
  3.       db 'welcome to masm!'
  4.       db '................'
  5.     datasg ends

  6. codesg segment
  7. start: mov ax,datasg
  8.          mov ds,ax
  9.          mov si,0
  10.          mov di,16
  11.          mov cx,8
  12.     s:  mov ax,[si]
  13.          mov [di],ax
  14.          add si,2
  15.          add di,2
  16.          loop s

  17.          mov ax,4c00h
  18.          int 21h
  19. codesg ends
  20. end start
复制代码
关于为什么循环八次的问题(我觉得十六次)。。。老师给出的解释是因为DI和SI只能做16位寄存器不能拆成两个八位寄存器使用。不懂啊,换句话说,就是我把“s:mov ax,[si]"换成"s:mov al,[si]"循环十六次不行吗?这和十六位寄存器能不能分成八位的寄存器有神马关系啊。。。我好笨。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-18 21:17:13 | 显示全部楼层
版主。。。。我懂啦!版主。。。我懂啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-27 02:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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