Det går att ordna.
Först MikroBasic-koden för ett exempel:
Kod: Markera allt
program PimTest
dim vilkenb as short
TRISB = 0 ' Utgångar på B
PORTB = 0 ' Stäng av alla
do
for vilkenb = 3 to 0 step -1
SetBit (PORTB,vilkenb)
delay_ms(40)
ClearBit (PORTB,vilkenb)
delay_ms(1)
next vilkenb
loop until 0 = 1
end.
Sedan asm-varianten: (Har tyvärr inte fixa till den. Gjorde precis test-koden ovan. Hoppas det går att läsa asm-koden ändå..)
Kod: Markera allt
;// ASM code generated by mikroVirtualMachine for PIC - V. 3.0.0.0
; Date/Time: 2005-09-22 00:30:03
; Info: http://www.mikroelektronika.co.yu
;// ADDRESS OPCODE ASM
; ----------------------------------------------
$0000 $EF04 F000 GOTO PimTest_main
$0008 $ PimTest_main:
$0008 $ PimTest_main_main:
$0008 $6A93 CLRF TRISB, 0
$000A $6A81 CLRF PORTB, 0
$000C $ PimTest_L_1:
$000C $0E03 MOVLW 3
$000E $6E15 MOVWF main_global_vilkenb, 0
$0010 $ PimTest_L_2:
$0010 $6A01 CLRF STACK_1, 0
$0012 $80D8 BSF STATUS, C, 0
$0014 $BE15 BTFSC main_global_vilkenb, 7, 0
$0016 $D002 BRA PimTest_L_5
$0018 $5015 MOVF main_global_vilkenb, W, 0
$001A $5C01 SUBWF STACK_1, W, 0
$001C $ PimTest_L_5:
$001C $E33D BNC PimTest_L_4
$001E $ PimTest_L_3:
$001E $0E01 MOVLW 1
$0020 $1281 IORWF PORTB, F, 0
$0022 $0E03 MOVLW 3
$0024 $6E01 MOVWF STACK_1, 0
$0026 $0EFF MOVLW 255
$0028 $6E02 MOVWF STACK_2, 0
$002A $0EFF MOVLW 255
$002C $6E03 MOVWF STACK_3, 0
$002E $2E01 DECFSZ STACK_1, F, 0
$0030 $D001 BRA $+2
$0032 $D007 BRA $+8
$0034 $2E02 DECFSZ STACK_2, F, 0
$0036 $D001 BRA $+2
$0038 $D003 BRA $+4
$003A $2E03 DECFSZ STACK_3, F, 0
$003C $D7FE BRA $-1
$003E $D7FA BRA $-5
$0040 $D7F6 BRA $-9
$0042 $0E0B MOVLW 11
$0044 $6E01 MOVWF STACK_1, 0
$0046 $0EFF MOVLW 255
$0048 $6E02 MOVWF STACK_2, 0
$004A $2E01 DECFSZ STACK_1, F, 0
$004C $D001 BRA $+2
$004E $D003 BRA $+4
$0050 $2E02 DECFSZ STACK_2, F, 0
$0052 $D7FE BRA $-1
$0054 $D7FA BRA $-5
$0056 $0E1A MOVLW 26
$0058 $6E01 MOVWF STACK_1, 0
$005A $2E01 DECFSZ STACK_1, F, 0
$005C $D7FE BRA $-1
$005E $0000 nop
$0060 $0E01 MOVLW 1
$0062 $6E02 MOVWF STACK_2, 0
$0064 $1E02 COMF STACK_2, F, 0
$0066 $5002 MOVF STACK_2, W, 0
$0068 $1681 ANDWF PORTB, F, 0
$006A $0E0D MOVLW 13
$006C $6E01 MOVWF STACK_1, 0
$006E $0EFF MOVLW 255
$0070 $6E02 MOVWF STACK_2, 0
$0072 $2E01 DECFSZ STACK_1, F, 0
$0074 $D001 BRA $+2
$0076 $D003 BRA $+4
$0078 $2E02 DECFSZ STACK_2, F, 0
$007A $D7FE BRA $-1
$007C $D7FA BRA $-5
$007E $0EF3 MOVLW 243
$0080 $6E01 MOVWF STACK_1, 0
$0082 $2E01 DECFSZ STACK_1, F, 0
$0084 $D7FE BRA $-1
$0086 $0EFF MOVLW 255
$0088 $2615 ADDWF main_global_vilkenb, F, 0
$008A $0EFF MOVLW 255
$008C $6E15 MOVWF main_global_vilkenb, 0
$008E $0EFF MOVLW 255
$0090 $B0D8 BTFSC STATUS, C, 0
$0092 $0F01 ADDLW 1
$0094 $2615 ADDWF main_global_vilkenb, F, 0
$0096 $D7BC BRA PimTest_L_2
$0098 $ PimTest_L_4:
$0098 $D7B9 BRA PimTest_L_1
$009A $D7B8 BRA PimTest_L_1
$009C $ PimTest_L_6:
$009C $ PimTest_L_7:
$009C $D7FF BRA PimTest_L_7