高级语言接口与16位MS - DOS编程全解析
1. 高级语言与汇编语言的交互
在高级语言编程中,有时需要借助汇编语言来优化特定部分或针对特定硬件进行定制。有两种主要的方法可以实现高级语言与汇编语言的结合:
- 内联汇编代码 :将汇编代码嵌入到高级语言代码中。
- 链接汇编语言程序 :将汇编语言编写的程序与高级语言程序进行链接。
1.1 参数传递与调用约定
在遵循C调用约定时,参数会以逆序压入栈中。例如,在 ReadSector 过程的栈帧中,离EBP最远的是 numSectors ,它是第一个被压入栈的参数。 StartSector 是一个32位双字,占据栈上从 [bp + 6] 到 [bp + 09] 的位置。由于程序是为小内存模型编译的, buffer 作为一个16位近指针传递。
1.2 调用外部函数示例:生成大随机整数
为了展示从Borland C++调用外部函数的实用示例,我们可以调用 LongRandom 函数,这是一个汇编语言函数,它返回一个32位无符号伪随机整数。标准的 rand() 函数在Borland C++库中只能返回0到 RAND_MAX (32,767)之间的整数,而 LongRandom 函数可以返回0到4,294,
超级会员免费看
订阅专栏 解锁全文
54

被折叠的 条评论
为什么被折叠?



