|
发表于 2017-3-20 22:13:25
|
显示全部楼层
CPU并不象你的大脑一样,它并不知道你传入的是什么,它认识的只有0和1,
至于这些0和1组合起来要做什么,有什么目的,CPU并不知道,
它只知道符合它指令规则的,它就执行下去。不符合它指令规则的,它就执行不了,
或者执行之后变成与编写程序者要求目的不一样的结果。
本题中:
您的问题:“这第一行的 mov ax,1000H ,这个1000H是段地址吧, 第三行 mov ax,2266H,这个传入ax的是数据,那我怎么知道地址和数据是不是一个意思?为什么这个和1000H就是段地址,2266H就是字型数据.”
1、这个传入ax的是数据,那我怎么知道地址和数据是不是一个意思?
它是地址还是数据有区别吗?地址同样也是一种数据,
我知道你问这个问题的意思,你的意思是如果是地址的话,就能做与地址有关的事情,如果是数据的话,它就能到某个位置进行运算诸如此类等等。
但是我想说的是不要纠结这些问题,ax通用寄存器“收到”了这个2266H就可以了。
2、为什么这个和1000H就是段地址,2266H就是字型数据.
你是说mov [0],ax这句吗?[0]这个玩意出现在这里,它没有在前面显式加上es:、ss:这样的段前缀,它就会自动“寻找”ds寄存器。
ds:[0]就是代表的一个地址,为什么会这样,这是因为汇编的语法规则是这样的。
|
|