刚学习80X86汇编的时候,有一条称为段分配伪指令Assume,我刚开始看这个的时候,就一直没看懂什么意思,老师也仅仅就说了一下,必须得这样,至于更深层次的讨论就没有,所以关于assume指令一直是懵懵懂懂的。这些天才回过头来看的话,貌似有一点感悟!很久没写点文章了,就写下自己对于assume的理解吧。
很多书上说的是assume指令使段寄存器与某个段关联起来,但是assume指令是伪指令,还必须通过指令来赋值给段寄存器。这话第一次看的时候,确实很迷茫。在这里我试着从另外的一个角度去理解assume指令。
还是先来个例子(为了突出重点,例子都是很简单,甚至仅为测试而写,没有实际意义)
DATA SEGMENT ;数据段
MESS DB "HELLO",0DH,0AH,'$'
DATA ENDS
;
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX