24、386和486机器的32位编程技术解析

386和486机器的32位编程技术解析

1. 模块相关知识

1.1 模块开发与链接

在编程中,模块开发具有诸多优势。首先,每个模块可单独开发,实现并行开发,从而缩短开发时间。其次,更容易定位错误来源。此外,这些模块还能与C等高级语言进行链接。在模块定义中,PUBLIC用于声明公共符号,EXTRN用于声明外部符号。一个程序的入口和出口模块会在END语句后有一个标签。

1.2 模块中的参数传递

参数传递有多种方式:
- 通过寄存器 :优点是寄存器执行速度快,但可用寄存器数量有限,能传递的值不多。
- 通过栈 :不占用可用寄存器,但栈处理错误可能导致系统崩溃。
- 通过内存 :有较大的数据存储区域,但程序可能不具备跨计算机的可移植性。

1.3 汇编语言与C程序的结合

汇编语言与C程序结合时,采用内联方式。参数传递除数组按引用传递外,其他按值传递,且按参数列表逆序传递。参数压入栈后,C会为FAR过程压入CS:IP,为NEAR过程压入IP。

2. 80386/80486机器的实模式特性

2.1 寄存器差异

8086/286的最大寄存器大小为16位,而386/486将寄存器最大大小扩展到32位。例如,AX变为EAX,BX变为EBX等。386/486中的EAX可按AL、AH、AX或EAX访问,但其高16位不能作为单独寄存器访问,这一规则同样适用于EBX、ECX和EDX。此外,DI、SI、BP和SP分别变为EDI、E

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值