那也是一个内存地址?mt5内存必要2个所正在.段所正在和偏移所正在.段所正在日常放正在段寄存器里,正在186内里,以S末了的寄存器就叫段寄存器(0_0!请不要急着写代码测试...),但不是每个段寄存器都能敷衍改的.为什么呢?我说过:代码也是正在内存里的,也即是说,必要一个段寄存器 和一个偏移寄存器来指向咱们的代码,又有栈(不是本章实质),那也是一个内存所正在,也必要段寄存器和一个偏移寄存器.(我可没说偏移所正在放正在偏移寄存器里,本质上咱们操作内存很少用到偏移寄存器!)
好了,接着说若何往段寄存器里写入段所正在了.说到这里不得不说CPU的极少蛋疼的地方了.片刻先说2处:
1:日常的数据操作指令,必要2个寄存器操作数的期间,不行放2个位数分别的寄存器.比方下边的代码是行欠亨的:
2:X86有一个缺陷:不行直接MOV 段寄存器,数字,必要拿其它寄存器做中转
好了,段所正在说完了,说偏移所正在,这个偏移所正在,载体对照众.能用局限寄存器或用直接数(即是直接上数字).
还记得内存所正在算法吗?没错,即是把段所正在乘以16(这里的16是10进造的哟!),加上偏移所正在!
正在NASM汇编中,操作数为内存值的期间,用这种形式显露(把某数值写入内存的语法):
可睹,正在汇编中,用方括号显露这个操作数是内存某所正在,方括号里显露所正在.正在指令后边,用英文单词显露要操作的数据类型.避免转移众余数据到内存里.