新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

用汇编的眼光?/p>

C++

(之嵌入汇编?/p>

 

 

 

?/p>

 

声明:版权所有,欢迎转载,请勿用于商业用途?/p>

 

 

联系信箱?/p>

feixiaoxing @163.com

?/p>

 

 

   

  

嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:?/p>

1

)提高代码的工作?/p>

?/p>

 

,使用到

cpu

的一些特殊指令,比如?/p>

mmx

指令;(

2

)对硬件进行某种特殊的操作,比如说关中断等,?/p>

在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一

起做实验,用事实证明一切?/p>

 

 

   

  

?/p>

1

)使用嵌入汇编的时候,注意寄存器的保护

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 process()   

2. 

{   

3. 

    __asm   

4. 

    {   

5. 

        push ax   

6. 

        push bx   

7. 

        push cx   

8. 

        pop cx   

9. 

        pop bx    

10. 

        pop ax   

11. 

    }   

12. 

    return 1;   

13. 

}   

   

 

?/p>

2

)调用函数的时候,直接使用

call

即可,返回值用

eax

传递,同时注意堆栈平衡

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 add(

int

 a, 

int

 b)   

2. 

{   

3. 

    return a + b;   

4. 

}   

5. 

   

6. 

int

 process()   

7. 

{   

8. 

    

int

 value = 0;   

9. 

    __asm   

10. 

    {   

11. 

        push eax   

12. 

        push 2   

13. 

        push 3   

14. 

        call add   

15. 

        add esp, 8   

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

用汇编的眼光?/p>

C++

(之嵌入汇编?/p>

 

 

 

?/p>

 

声明:版权所有,欢迎转载,请勿用于商业用途?/p>

 

 

联系信箱?/p>

feixiaoxing @163.com

?/p>

 

 

   

  

嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:?/p>

1

)提高代码的工作?/p>

?/p>

 

,使用到

cpu

的一些特殊指令,比如?/p>

mmx

指令;(

2

)对硬件进行某种特殊的操作,比如说关中断等,?/p>

在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一

起做实验,用事实证明一切?/p>

 

 

   

  

?/p>

1

)使用嵌入汇编的时候,注意寄存器的保护

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 process()   

2. 

{   

3. 

    __asm   

4. 

    {   

5. 

        push ax   

6. 

        push bx   

7. 

        push cx   

8. 

        pop cx   

9. 

        pop bx    

10. 

        pop ax   

11. 

    }   

12. 

    return 1;   

13. 

}   

   

 

?/p>

2

)调用函数的时候,直接使用

call

即可,返回值用

eax

传递,同时注意堆栈平衡

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 add(

int

 a, 

int

 b)   

2. 

{   

3. 

    return a + b;   

4. 

}   

5. 

   

6. 

int

 process()   

7. 

{   

8. 

    

int

 value = 0;   

9. 

    __asm   

10. 

    {   

11. 

        push eax   

12. 

        push 2   

13. 

        push 3   

14. 

        call add   

15. 

        add esp, 8   

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

用汇编的眼光?/p>

C++

(之嵌入汇编?/p>

 

 

 

?/p>

 

声明:版权所有,欢迎转载,请勿用于商业用途?/p>

 

 

联系信箱?/p>

feixiaoxing @163.com

?/p>

 

 

   

  

嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:?/p>

1

)提高代码的工作?/p>

?/p>

 

,使用到

cpu

的一些特殊指令,比如?/p>

mmx

指令;(

2

)对硬件进行某种特殊的操作,比如说关中断等,?/p>

在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一

起做实验,用事实证明一切?/p>

 

 

   

  

?/p>

1

)使用嵌入汇编的时候,注意寄存器的保护

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 process()   

2. 

{   

3. 

    __asm   

4. 

    {   

5. 

        push ax   

6. 

        push bx   

7. 

        push cx   

8. 

        pop cx   

9. 

        pop bx    

10. 

        pop ax   

11. 

    }   

12. 

    return 1;   

13. 

}   

   

 

?/p>

2

)调用函数的时候,直接使用

call

即可,返回值用

eax

传递,同时注意堆栈平衡

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 add(

int

 a, 

int

 b)   

2. 

{   

3. 

    return a + b;   

4. 

}   

5. 

   

6. 

int

 process()   

7. 

{   

8. 

    

int

 value = 0;   

9. 

    __asm   

10. 

    {   

11. 

        push eax   

12. 

        push 2   

13. 

        push 3   

14. 

        call add   

15. 

        add esp, 8   

Ͼλ">
Ͼλ
Ŀ

用汇编的眼光看C++(之嵌入汇? - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

 

 

用汇编的眼光?/p>

C++

(之嵌入汇编?/p>

 

 

 

?/p>

 

声明:版权所有,欢迎转载,请勿用于商业用途?/p>

 

 

联系信箱?/p>

feixiaoxing @163.com

?/p>

 

 

   

  

嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:?/p>

1

)提高代码的工作?/p>

?/p>

 

,使用到

cpu

的一些特殊指令,比如?/p>

mmx

指令;(

2

)对硬件进行某种特殊的操作,比如说关中断等,?/p>

在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一

起做实验,用事实证明一切?/p>

 

 

   

  

?/p>

1

)使用嵌入汇编的时候,注意寄存器的保护

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 process()   

2. 

{   

3. 

    __asm   

4. 

    {   

5. 

        push ax   

6. 

        push bx   

7. 

        push cx   

8. 

        pop cx   

9. 

        pop bx    

10. 

        pop ax   

11. 

    }   

12. 

    return 1;   

13. 

}   

   

 

?/p>

2

)调用函数的时候,直接使用

call

即可,返回值用

eax

传递,同时注意堆栈平衡

 

[cpp]

 

view plaincopyprint?

 

1. 

int

 add(

int

 a, 

int

 b)   

2. 

{   

3. 

    return a + b;   

4. 

}   

5. 

   

6. 

int

 process()   

7. 

{   

8. 

    

int

 value = 0;   

9. 

    __asm   

10. 

    {   

11. 

        push eax   

12. 

        push 2   

13. 

        push 3   

14. 

        call add   

15. 

        add esp, 8   



ļ׺.doc޸Ϊ.docĶ

  • еʡн2011-2012ѧѧĩԸһԾ
  • 2018߿Ӣһָϰ 1 ֪ʶ Module 3 The
  • ʦдĹͬ
  • СѧϺ꼶²ȫ̰
  • ׶PROEģ
  • й񺽷ѧԺά޹̹2014Կר
  • ս̰꼶ѧڵڶѧġδ˵θ
  • ѧϰ
  • ѧ ϰ
  • OracleݿӦ ϰ⼰

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)