//c中的程序如下
extern void DELAY(unsigned char i,unsigned int j);
char CYZ;
void main(void)
{
DELAY(10,1000);
}
;彙編程序如下:
PUBLIC _DELAY ;程序段
DELAYP SEGMENT CODE ;入口地址
RSEG DELAYP ;程序段
;EXTRN CODE (?C?FPMUL)
EXTRN DATA (CYZ)
_DELAY:
DELAY:
DJNZ R4,$
DJNZ R5,$
DJNZ R7,$
mov CYZ,a;只是爲了說明如何改變其全局變量的值
RET
END
數類型 char int long/float 通用指針
第1個 R7 R6&R7 R4-R7 R1-R3
第2個 R5 R4&R5 R4-R7 R1-R3
第3個 R3 R2&R3 -- R1-R3
舉個例子吧,void delay(unsigned char i, unsigned int j) 當執行語句delay(10,1000)時,10會存入R7中,1000高位會存入R4中,低位存入R5中。在彙編語句中從這幾個寄存器中取數,再進行操作就行了,說起來也很簡單的嘛,呵呵~