我給你來個試試
- ;流水燈程序
- org 0000h ;設置起始地址
- ajmp main ;無條件跳轉指令 跳到 main
- org 0100h ;定位的偽指令 順序放到從0100H開始的程序單元
- main: mov r4,#04h ;向R4寄存器中載入十六進制數04H
- loop: mov a,#01h ;向A寄存器中載入十六進制數01H
- loop1: mov P1,a ;取出的值輸出到P1端口
- acall delay ;調入延時程序
- rl a ; 累加器A 循環左移
- djnz r4,loop1 ;檢測R4是否為零,每次減1不為零就跳 否則跳到loop1處繼續執行
- mov r4,#04h ;賦初值
- ajmp loop ;無條件跳轉指令 跳到loop
- delay: mov r7,#64h ; 延時程序 ;向R7寄存器中載入十六進制數64H
- loop3: mov r6,#0C8h ;向R6寄存器中載入十六進制數0C8H
- loop4: nop ;表示執行一條沒有什么意義的空指令
- nop ;表示執行一條沒有什么意義的空指令
- nop ;表示執行一條沒有什么意義的空指令
- djnz r6,loop4 ;檢測R6是否為零,每次減1不為零就跳 否則跳到loop4處繼續執行
- djnz r7, loop3 ;檢測R7是否為零,每次減1不為零就跳 否則跳到loop3處繼續執行
- ret ;返回指令
- End ;程序結束
復制代碼 |