gpt4 book ai didi

c - 将 objconv 与 ld 而不是 gcc 一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:29 25 4
gpt4 key购买 nike

我有一组 C 代码,我需要将其转换为 Linux 中的 nasm 64 位。但是,我不能使用任何 C 函数或 printf。有没有办法使用 objconv 来代替 BIOS 调用?

// plot_64.c  simple plot of sin(x)
#include <stdio.h>

#define ncol 41
#define nrow 21
int main(int argc, char *srgv[])
{
char points[nrow][ncol]; // char == byte
char point = '*';
char space = ' ';
long int i, j, k, rcx;
double af[] = {0.0, 1.0, 0.0, -0.166667,
0.0, 0.00833, 0.0, -0.000198};
long int N = 7;
double x, y;
double dx = 0.15708; // 6.2832/40.0

// clear points to space ' '
for(i=0; i<nrow; i++)
for(j=0; j<ncol; j++)
points[i][j] = space;

// compute points
x = -3.14159;
for(j=0; j<ncol; j++)
{
y = af[N]*x + af[N-1]; // horners h5loop
for(rcx=N-2; rcx>=0; rcx--) y = y*x + af[rcx];
k = (20.0 - (y+1.0)*10.0); // scale 1.0 to -1.0, 0 to 20
points[k][j] = point;
x = x + dx;
}

// print points
for(i=0; i<nrow; i++)
{
for(j=0; j<ncol; j++)
printf("%c", points[i][j]);
printf("\n");
}
return 0;
} // end plot_64.c

最佳答案

nasm 的转换非常简单,只需在 gcc 上使用适当的参数即可输出汇编文件。

调用gcc前,修改源文件调用自己的函数。将您自己的函数附加到源代码,让您自己的函数执行必要的 BIOS 调用。

对于浮点运算,简单的替换会很困难。建议谷歌搜索此类功能并将这些功能附加到您的源代码中

关于c - 将 objconv 与 ld 而不是 gcc 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com