1. 让源文件支持内联汇编

在main.c上点击右键, options for file ‘main.c’,勾选上generate Assembler SRC file和Assemble SRC file,注意勾选上是黑色的,不是灰色的。
image.png

2. 编写内联的汇编代码

  1. //黑马程序员
  2. #include <STC8H.H>
  3. void delay(void) { 延时1000ms的函数,逻辑代码来自stc-isp软件
  4. #pragma asm //汇编开头
  5. nop
  6. nop
  7. push 0x30
  8. push 0x31
  9. push 0x32
  10. mov 0x30, #122
  11. mov 0x31, #193
  12. mov 0x32, #126
  13. next_loop:
  14. djnz 0x32, next_loop
  15. djnz 0x31, next_loop
  16. djnz 0x30, next_loop
  17. pop 0x32
  18. pop 0x31
  19. pop 0x30
  20. #pragma endasm //汇编结尾
  21. }
  22. void main(void) {
  23. P5M1 = 0x00;
  24. P5M0 = 0x00;
  25. P53 = 1;
  26. while(1){
  27. delay();
  28. P53 = 0;
  29. delay();
  30. P53 = 1;
  31. }
  32. }

3. 添加汇编代码链接支持

image.png
根据不同的编译模式,在 KEIL 安装目录表下的 keil\c51\lib\中选中相应的库文件添加到工程中
C51S.LIB - 没有浮点运算的 Small model
C51C.LIB - 没有浮点运算的 Compact model
C51L.LIB - 没有浮点运算的 Large model
C51FPS.LIB - 带浮点运算的 Small model
C51FPC.LIB - 带浮点运算的 Compact model
C51FPL.LIB - 带浮点运算的 Large model
我这里选择的是C51S.LIB库,效果如下:
image.png

搞定~