高分:为什么立即数不能直接赋给段寄存器
“有一个intel出来的同事真是好,对于标题所述的问题,他是这样解释的,由于立即数直接写入段寄存器这样的指令,被翻译成机器码之后将占用更多的字节,在事先规定的指令长度范围内无法存贮下这么多的内容,因此改由先写入通用寄存器,再由通用寄存器写入段寄存器的办法代替。立即数实际上是相当占地方的。”
对于上述的解释,我不是太赞同,他说把立即数赋给段寄存器对应得机器指令很长,那么,如果改赋给通用寄存器对应的机器指令不也一样长吗(段寄存器和通用寄存器都是寄存器)?中间还过度指令也要空间啊,所以我不理解这个解释。
请高手指点一下。
相关推荐
汇编语言教程-段寄存器的说明语句
程序员不能在源程序中直接给代码段寄存器赋值。为了结束程序的执行,通常使用中断调用来完成。
汇编期末考试复习:寄存器、寻址、标志位与常用指令详解
计算机程序最终都要转化为机器指令执行,而汇编语言作为最接近硬件的编程语言,直接操作寄存器、内存和标志位,是理解计算机工作原理的关键。掌握寄存器分组与用途、七种寻址方式的有效地址计算、CMP与条件转移指令对标志位的影响,以及MASM环境下从源程序到EXE的完整流程,是学习底层开发的必备技能。这些知识广泛应用于嵌入式开发、操作系统内核、逆向工程及性能优化等领域。在汇编期末考试中,无论是读程序写结果、填空改错还是编程题,本质上都是考察对指令执行过程中状态变化的把握。本文以期末复习为线索,系统梳理寄存器、寻址、标志
8086汇编排序实战:DOS实模式下的内存寻址与算法实现
8086汇编是理解x86底层编程的基石,其核心在于实模式内存管理、段寄存器协同与DOS中断调用机制。本文围绕一个真实可运行的学生成绩排序程序展开,解析从ORG伪指令到物理地址计算(如1000H/2000H布局)、从SCAN线性扫描算法到压缩BCD显示逻辑的技术原理。程序严格依赖INT 21H等DOS系统调用,体现BIOS与DOS的分层服务边界;同时通过DEBUG单步调试、段寄存器显式设置、地址偏移精算等手段,揭示8086分段寻址对算法实现的硬性约束。该案例不仅适用于微机原理教学与汇编入门实践,更是嵌入式固件
汇编MOV和ADD指令用法总结(DOC)
此外,段寄存器之间不能直接传送,立即数不能直接赋值给段寄存器,且修改CS寄存器通常只能通过转移指令如JMP完成。2.
曹辰鹏 2019218117 汇编第一次作业1
- 立即数不能直接赋给段寄存器如`ES`或`DS`。 - 段寄存器之间不能直接传输数据。 - `AL`只能存储8位数据,而300超过了它的范围。


