鱼C论坛

 找回密码
 立即注册
查看: 2256|回复: 4

3.3字的传送

[复制链接]
发表于 2012-5-25 12:51:42 | 显示全部楼层 |阅读模式
1鱼币
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/1255301870/QQ/WinTemp/RichOle/~AVRXQ_QHP~BHGT2Q%25Q3]%60K.jpg
要转入ds寄存器中非得用通用寄存器bx吗?别的通用寄存器行吗?
倒数第一行为什么将CX赋值到[0]中就是把cx的数据输送到1000:0里呢?

最佳答案

查看完整内容

第一个问题:当然不是只得用bx,可以这样写: mov ax,1000h mov ds,ax 第二:请听我慢慢道来 mov bx,1000h mov ds,bx ;这两句代码定义了段地址为1000h 那么,mov 【0】,cx 也可写作mov ds:[0],cx,因为默认段地址是存储在ds中,所以这里可以省略ds ;ax是16为寄存器,进行的是字操作,目标偏移地址是0,很显然,是把cx寄存器里存储的字单元中的值传送到1000h(段地址):0(偏移地址)这个字单元中 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-25 12:51:43 | 显示全部楼层
第一个问题:当然不是只得用bx,可以这样写:
mov ax,1000h
mov ds,ax

第二:请听我慢慢道来
mov bx,1000h
mov ds,bx             ;这两句代码定义了段地址为1000h

那么,mov 【0】,cx     也可写作mov ds:[0],cx,因为默认段地址是存储在ds中,所以这里可以省略ds  ;ax是16为寄存器,进行的是字操作,目标偏移地址是0,很显然,是把cx寄存器里存储的字单元中的值传送到1000h(段地址):0(偏移地址)这个字单元中

不知道,讲清楚了没有

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-25 14:34:08 | 显示全部楼层
1、不一定要用bx,可以用si,di,bp也可以,这些会在小甲鱼老湿后面的教程有讲到的。2、因为编译器默认[0]的缺省值是ds:[0],ds是数据段,例如[bp]的缺省值为ss:[bp]这些都是默认的,你如果不想用ds,可以手动改为es:[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-25 19:17:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-25 19:18:58 | 显示全部楼层
Yara 发表于 2012-5-25 14:34
1、不一定要用bx,可以用si,di,bp也可以,这些会在小甲鱼老湿后面的教程有讲到的。2、因为编译器默认[0]的缺 ...

额,老大你说的有点高深了,后面的还没看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-20 06:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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