asmfile.asm

来自「一个c与汇编的混合编程」· 汇编 代码 · 共 70 行

ASM
70
字号

.section/pm    pm_ovly_5; 

.global       _add;

.extern       _Result;

_add:
    
/* 以下用宏实现的汇编函数调用*/
     /* function_entry;
      
      readsfirst(AY1);
      
      AX1=readsnext;
      
      AR=AX1+AY1;
      
      DM(Result)=AR;
      
      exit;*/  

/*以下用汇编实现的函数调用*/

      AR=M4;              
      
      M4=I4;              //保存现场
      
      DM(I4,M7)=AR;
      
      AR=TOPPCSTACK;
      
      M5=0x3FFF;;
      
      DM(I4,M5)=AR;
      
      I6=0X0002;         
      
      MODIFY(I6,M4);
      
      AY1=DM(I6,M6);      //根据堆栈特性,先读B
      
     
      
      I6=0X0001;
      
      MODIFY(I6,M4);
      
      AX1=DM(I6,M6);     //再读出A
       
      AR=AX1+AY1;        //计算ar=3
      
      AX1=AR;            //结果先存入ax1
      
      I6=M4;
      
      AY0=DM(I6,M7);
      
      AR=DM(I6,M5);
      
      TOPPCSTACK=AR;
      
      I4=M4;
      
      M4=AY0;          //恢复现场
      
      RTS;
      
_add.end:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?