研究试验2 使用寄存器
搞清楚问题
搞清楚问题,就知道了我们的需要,然后我们就不会拘泥于一种方法,
因为可能有很多方法都可以解决我们要解决的问题。
turbo 2.0 支持的寄存器名
_AX _BX _CX _DX _SI _DI _SP
_BP _CS _DS _SS _ES _AL _AH
_BL _BH _CL _CH _DL _DH
https://www.jianshu.com/p/c5f064a0f285
url1.c
main()
{
_AX = 1;
_BX = 1;
_CX = 2;
_AX = _BX + _CX;
_AH = _BL + _CL;
_AL = _BH + _CH;
printf("%x\n",main);
}
根据main的偏移量 01FAH 找到 url.c编译后的机器码和汇编代码.png
以ret结尾,说明C语言将函数实现为汇编语言中的子程序.png
ur2.c
void f(void);
main()
{
_AX = 1; _BX = 1; _CX = 2;
f();
}
void f(void)
{
_AX = _BX + _CX;
}
C语言将对函数f的调用实现为在汇编语言中call 一个子程序.png