gpt4 book ai didi

c - 如何编译这个汇编代码?

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

我在维基百科(意大利语)关于“程序集”的页面上找到了这些代码,其中包含一些描述行:

...示例程序“Hello world”,使用 Intel 语法汇编 Intel x86(使用对操作系统 DOS 的调用)。与 Assembly UNIX GNU 版本不兼容:

   MODEL SMALL
STACK 100H
.DATA
HW DB "hello, world", 13, 10, '$'
.CODE
.STARTUP
MOV AX, @data
MOV DS, AX
MOV DX, OFFSET HW
MOV AH, 09H
INT 21H
MOV AX, 4C00H
INT 21H
END

...

...用 C-asm(使用 Intel x86 程序集)编写的代码示例,显示接收到的二进制数据中的数字作为输入,如下所示:

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
int main()
{
int a;

/* Acquisizione del valore numerico */
printf("Inserisci un valore compreso tra -32768 e 32768: ");
scanf("%d", &a);

/* Visualizzazione del messaggio di risposta */
printf("Il valore corrispondente in binario è: ");

/* Keyword per delimitare le sezioni di codice Assembly */
asm
{
/* Visualizzazione della stringa di bit corrispondente */
MOV BX,WORD PTR a
MOV CX,00Ah
}

/* Etichetta esterna */
Ciclo:
asm
{
/* Estrazione di un bit */
MOV DL,00H
RCL BX,1 /* Il valore del bit viene posto nel flag di carry */
ADC DL,'0' /* Determino il carattere da visualizzare */
MOV AH,02H /* Visualizzazione */
INT 21h
Loop Ciclo
}
return 0;
}

编译这些代码的编译器或命令是什么?我尝试使用 gcc,但我必须修改语法。

最佳答案

这两个片段都是 MS-DOS 程序集。

第一个片段可以用 FASM 构建。 FASM 可以针对 MS-DOS。

对于第二个,您需要一个非常旧的 Microsoft C 编译器,例如 Quick C 2.x 或 MSC 6.x。 Microsoft C 的最新版本能够发出 Visual C++ 1.54 IIRC 附带的 16 位代码。所有这些编译器都已长期停产。

要执行其中任何一个,您需要一台 MS-DOS 机器或一个模拟器,例如 DOSBox。 Windows 命令行不行。

关于c - 如何编译这个汇编代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973613/

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