我正在尝试翻译汇编代码,它将系统日期和时间转换为C中的内联汇编代码。
我试图翻译的汇编代码看起来像这样(只是实际代码的一部分)
MOV AH, 2AH
INT 21H
MOV BL, DL
MOV BH, 0
PUSH BX
CALL P_PRINT_NUM ; function to print number
我制作的C代码看起来像
uint8_t test;
asm("movb $0x2A, %%ah;"
"int $0x21;"
"movb %0, %%dl;"
: "=r"(test));
使用GCC编译得很好。但是,当我运行程序时,我得到一个分段错误错误。我尝试了一些改变约束或变量类型但没有成功的事情。我对内联汇编很新。任何帮助将不胜感激。感谢。