飞翔工作室 发表于 2013-9-10 23:11:04

ffffH:0006单元中的数乘3的问题

计算ffffH:0006单元中的数乘3结果存在DX中。

这个问题实在是蛋痛,就好像数学中的X+Y把结果=Z,
X是多少也不知道,Y是多少也不知道。

好抽像啊,新手对这类问题,看了答案像看天书一样的。
mov ax,0ffffh
mov ds,ax

这两段代码,为什么是把0FFFFH先存到ax中,而不是BX CX……而不是0FFFF+0006存在AX中呢?

这里说的是不是先把FFFFH的数据先存到AX,再把AX的数据放到数据段,而不是放在CS SS……规定?

估计是理解了这两条,后面的就好理解了。
书是97页,代码!

liangfei44 发表于 2013-9-11 08:40:06

如果只是简单的解释,那就是ax,bx,cx,dx都有默认的作用。
AX 称为累加器,常用于存放算术逻辑运算中的操作数,另外所有的I/O指令都使用累加器与外设接口传送信息。
BX,CX,DX都有自己的默认作用,这个书上有。当然如果你硬要mov bx,data mov ds,bx,那也是可以的

ffffH:0006 废话,16位寄存器,最大只能接受FFFF的值,当然如果你能用16位寄存器保存【FFFF+0006H】的值,整个计算机界都会以你为师。那个崇拜啊。

至于放在DS,而不是CS,SS,那是因为编译器的原因,他需要知道,哪些地方是存放数据,哪些地方存放代码,要不然,就乱套了。

复杂的解释,就得先看汇编,将语法之类的搞定,再看计算机组成原理,将结构搞定,再看inter开发手册,将架构搞定,这样,你就差不多,可以搞定上面的原理,然后深入,你就得去看电路图呢。

飞翔工作室 发表于 2013-9-11 19:39:25

谢谢2楼的大神,实在是学的枯燥发下牢骚,一知道半解的,看的太抽像了。

baby520 发表于 2013-9-22 20:38:40

慢慢来吧。。
页: [1]
查看完整版本: ffffH:0006单元中的数乘3的问题