3
聯彙編我想下面的代碼從內聯彙編打印C的char *使用INT 10H
extern "C" void KernelMain()
{
char *mytxt = "Ahmed";
_asm
{
mov si,mytxt
Print:
lodsb ; load next character
or al, al ; test for NUL character
jz DONE
mov ah, 00Eh ; BIOS teletype
mov bh, 000h ; display page 0
mov bl, 007h ; text attribute
int 010h ; invoke BIOS
jmp Print
DONE :
}
打印Çchar*
,但在調試時我總是覺得si
指錯了偏移。 我試過mov si,offset mytxt
,但也失敗了。
我使用MSCV ++
你應該指定你正在使用的C編譯器。 – Michael
你正在使用哪種編譯器?您可以嘗試使用'lea'指令代替mov:'lea si,mytxt' – ex0ns
我正在使用msvC++ –