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页,代码!
如果只是简单的解释,那就是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开发手册,将架构搞定,这样,你就差不多,可以搞定上面的原理,然后深入,你就得去看电路图呢。 谢谢2楼的大神,实在是学的枯燥发下牢骚,一知道半解的,看的太抽像了。 慢慢来吧。。
页:
[1]