我正在阅读汇编语言中的一个例子,我有点怀疑。我们只在我们的程序中使用汇编,但本学期的最后一个单元是将它与 turbo c(在线汇编)合并,并阅读代码,有一部分我不太明白:这是汇编部分:
dosseg
.model small
.code
public _myputchar
_myputchar PROC
push bp
mov bp,sp
mov dl,[bp+4]
mov ah,2
int 21h
pop bp
ret
_myputchar ENDP
END
这是C部分:
#include<stdio.h>
extern void myputchar( char x );
char *str={"Hola Mundo\n"};
void main ( void )
{
while(*str)
myputchar(*str++);
getchar();
}
所以,这很简单,程序可以工作,但是,我不明白的是,它是汇编代码。问题是,为什么它指向 +4 的基指针 (bp)?(mov dl,[bp+4]),我认为你只需要 mov dl,bp 但我不明白为什么 +4。如果有人可以帮助我们,那将是非常感激的!(在包含部分我放了“”,因为它给了我这样的格式化工具-_-!