SourceFormatX

軟體簡介

主要功能

為什麼要使用

源碼美化演示

整合和插件

界面預覽

常見問題

升級歷史

所獲獎項

用戶評價

許可協議

CodeToHtml

8051組合語言原始碼美化效果演示

現在購買
下載試用

程式碼美化工具功能

SourceFormatX 使用強大的8051組合語言詞法解析引擎全面地分析您的原始碼並根據用戶自定義的原始碼風格重構和美化8051和ASM51原始碼檔案,因此它能精細地根據不同的原始碼風格美化多種原始碼,甚至是下面這些極度混亂的原始碼:

C/C++ Java C# Delphi (Pascal)
PHP JSP ASP JavaScript
Visual Basic VB.NET VBScript HTML Components
80x86 ASM 8051 ASM CORBA IDL


這是一個非常極端的 8051 組合語言 (8051 Assembly / ASM51) 原始碼美化的範例,其目的是為了展示 SourceFormatX 8051組合語言程式碼美化工具詞法解析引擎的威力,這份混亂的ASM51原始碼檔案在1秒種內即被SourceFormatX美化和縮排成整潔的版式。

  ;----- 原始碼美化之前的8051組合語言原始碼 -----

      $nomod51
       $include (80c515.mcu)
     $include (mon_sub.inc)

   ; voorbeeld programma

           homeCur equ 02h
  shLfCur                 equ 10h
   shRtCur     equ 14h

  start:call  initlcd
  call cursorof
    call          setbarchars
  bar:   call  cursorup
       mov a,#20h
  call  shwLCDbar
    mov   dptr,#2000
        call ltime
   call  cursorup
                    mov   a,#80h
          call  shwLCDbar
      mov   dptr,#2000
    call ltime
      call  cursorup
    mov   a,#0ffh
  call  shwLCDbar
   mov   dptr,#2000
                call ltime
  jmp   bar

  ; ----------------------------------------------------
  ; subroutine shwLCDbar - displays een analoge-bar op regel 2
  ; the lengte van de bar is proportioneel met de waarde in de
  ; accumelator.
  ; ----------------------------------------------------

   push  acc        ; bewaar de binary waarde
    mov    a,#0c0h   ; zet de cursor op begin regel 2
      call   strcom
  mov   a, #2      ; row 2
    mov b, #0      ; locatie 0
      lcall placeCur4  ; place cursor at line 1, position 13

   pop   acc      ; herstel de binary waarde
  mov   b, #LCDwidth ; volle schaal met karakters
    mul      ab ; b heeft de integer
    mov r4, b ; save integer in r4
   mov r6,    b     ; character teller
  mov     r5,   a         ; save fraction in r5

    mov a, r4      ; mov integer part
      mov    r0, #5     ; volle karakter breedte met 5 kolommen
  sBar1:
  jz sBar2 ; geen vol karakter als r4=0
  push acc        ; bewaar teller
   mov    a,r0
      lcall lcddata ; display character
    pop   acc     ; recall count
  dec   acc  ; update count
    sjmp  sBar1         ; repeat
  sBar2:
  mov  a, #LCDwidth
  clr c          ; clear carry flag
    subb a, r6        ; spaces to write
  jz    sBar5  ; skip if 0
    mov   r6, a  ; save in a
   mov   r0, #' ' ; the space character
  sBar3:
  mov a,r0
    lcall lcddata ; display it
   djnz r6,      sBar4 ; repeat
  sBar4:
      ret
    end

  ;----- 原始碼美化之後的8051組合語言原始碼 -----

  $nomod51
  $include (80c515.mcu)
  $include (mon_sub.inc)

  ; voorbeeld programma

             homeCur equ 02h
             shLfCur equ 10h
             shRtCur equ 14h

  start:     call    initlcd
             call    cursorof
             call    setbarchars
  bar:       call    cursorup
             mov     A, #20h
             call    shwLCDbar
             mov     DPTR, #2000
             call    ltime
             call    cursorup
             mov     A, #80h
             call    shwLCDbar
             mov     DPTR, #2000
             call    ltime
             call    cursorup
             mov     A, #0ffh
             call    shwLCDbar
             mov     DPTR, #2000
             call    ltime
             jmp     bar

  ; ----------------------------------------------------
  ; subroutine shwLCDbar - displays een analoge-bar op regel 2
  ; the lengte van de bar is proportioneel met de waarde in de
  ; accumelator.
  ; ----------------------------------------------------

             push    ACC          ; bewaar de binary waarde
             mov     A, #0c0h     ; zet de cursor op begin regel 2
             call    strcom
             mov     A, #2        ; row 2
             mov     B, #0        ; locatie 0
             lcall   placeCur4    ; place cursor at line 1, position 13

             pop     ACC          ; herstel de binary waarde
             mov     B, #LCDwidth ; volle schaal met karakters
             mul     AB           ; b heeft de integer
             mov     R4, B        ; save integer in r4
             mov     R6, B        ; character teller
             mov     R5, A        ; save fraction in r5

             mov     A, R4        ; mov integer part
             mov     R0, #5       ; volle karakter breedte met 5 kolommen
  sBar1:
             jz      sBar2        ; geen vol karakter als r4=0
             push    ACC          ; bewaar teller
             mov     A, R0
             lcall   lcddata      ; display character
             pop     ACC          ; recall count
             dec     ACC          ; update count
             sjmp    sBar1        ; repeat
  sBar2:
             mov     A, #LCDwidth
             clr     C            ; clear carry flag
             subb    A, R6        ; spaces to write
             jz      sBar5        ; skip if 0
             mov     R6, A        ; save in a
             mov     R0, #' '     ; the space character
  sBar3:
             mov     A, R0
             lcall   lcddata      ; display it
             djnz    R6, sBar4    ; repeat
  sBar4:
             ret

  end

  不要再浪費寶貴的時間手動整理美化ASM51和8051組合語言原始碼了! 現在就下載SourceFormatX原始碼美化工具