i386汇编中16位代码段与32位代码段的区别

i386汇编中16位代码段与32位代码段的区别

标签: asm


以下为自己看书加实验的总结,如有错误还望指出。

关于代码段的位数,可以从两个角度看:
1、汇编源代码
2、段描述符

汇编源代码中的区别

在写汇编源代码时,可以指定代码段为16位或者32位。因为16位与32位的机器码是不同的,比如push 1,立即数的长度应为4字节还是2字节?这种时候便会依据代码段长度,生成响应的指令。32位代码段立即数为4字节,16位代码段为2字节。

一般会涉及到:
1、立即数长度
2、push/pop时栈的粒度

程序运行时的区别

存储段描述符属性中的D位,与代码段长度有关。
具体为:
1、可执行段为32位还是16位。
2、SS寻址使用ESP还是SP。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值