作业帮 > 综合 > 作业

汇编语言assume cs:code,ds:datarea 中的:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 13:14:09
汇编语言assume cs:code,ds:datarea 中的:
在汇编时其实内部只有偏移地址寻址,而没有变量名寻址.所以汇编时汇编软件会把你写的变量换成偏移地址.而变量是在你假定的段里查找得到偏移地址.一般指令程序放在代码段中,段地址来源于代码段寄存器CS,涉及到一个堆栈操作时,段寄存器为SS,涉及到一个操作数时,段寄存器为DS或者ES.assume cs:code,ds:datarea就是说明相应的操作所在段寄存器.当DS(ES)不指在assume的指明的段中也可以运行,只是会得到另一个段的相应偏移地址处的内容.例如:
assume ds:段名1 mov ds,段2 mov ax,段1中的第二个变量.最终结果ax保存的是段2中的对应与段1中第二个变量相同地方的东西(注意是db,dw.编译器是在段1中查找变量名,并把变量转换为偏移地址,但访问时使用ds:偏移地址 这时ds保存的是段2的段地址,所以访问到的是第二个段对应偏移地址的内容.