Trình bày văn bản của một byte


7

Tôi đã thấy trong rất nhiều dự án một bản trình bày tuyệt vời về byte như:

      Cầu chì byte cao:  
      0xc9 = 1 1 0 0 1 0 0 1 - BOOTRST (vector thiết lập lại khởi động ở 0x0000)  
             ^ ^ ^ ^ ^ ^ ^ ------ BOOTSZ0  
             | | | | | + -------- BOOTSZ1  
             | | | | + --------- EESAVE (không bảo toàn EEPROM khi xóa chip)  
             | | | + -------------- CKOPT (xoay đầu ra đầy đủ)  
             | | + ---------------- SPIEN (cho phép lập trình nối tiếp)  
             | + ------------------ WDTON (Không phải lúc nào WDT)  
            + -------------------- RSTDISBL (bật lại pin được bật)  

hoặc là

    Cầu chì byte thấp:
     0x9f = 1 0 0 1 1 1 1 1
            ^ ^ \ / \ - + - /
            | | | + ------- CKSEL 3..0 (bên ngoài> 8M tinh thể)
            | | + --------------- SUT 1..0 (osc pha lê, bật BOD)
            | + ------------------ BODEN (Đã bật Trình phát hiện BrownOut)
            + -------------------- CƠ THỂ (2.7V)

Tôi tự hỏi nếu có ai có thể cho tôi biết làm thế nào, hoặc ở đâu, tôi có thể làm một số trong số này?

chỉnh sửa: Ý tôi là, tôi thường thấy những kiểu trình bày ở định dạng texte, vì vậy tôi cho rằng nó không được làm bằng tay. Tôi đã hy vọng tìm thấy phần mềm / url để tạo samme.


Nếu bạn bao quanh văn bản trong các thẻ <pre>, nó sẽ không cố gắng làm nổi bật cú pháp, nhưng nó vẫn nên là không gian đơn.
Kevin Vermeer

10
Chúng thường được thực hiện bằng tay, nghiêm túc. :)
bjarkef

Tôi đã luôn làm chúng bằng tay, và đã tạo ra hàng trăm thứ chết tiệt. Thực sự không khó khăn chút nào.
akohlsmith

Câu trả lời:


5

Bạn có thể chơi với một cái gì đó với graphviz và dấu chấm. Đó là những công cụ doxygen sử dụng để tạo sơ đồ. Nó không chính xác như những gì bạn đang tìm kiếm, nhưng nó rất nhanh và dễ dàng để kịch bản và đầu ra trông khá đẹp mắt (thậm chí bạn hơi khó theo dõi một số dòng ...)


Ví dụ này sẽ tạo ra một cái gì đó như thế này

văn bản thay thế

Để làm điều này, trước tiên bạn tạo một tệp có tên byte.dot

digraph structs { 
node [shape=plaintext] 

struct1 [label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" ALIGN="left">  
    <TR>
        <TD>0xc9</TD>
        <TD PORT="f0"> 1 </TD>
        <TD PORT="f1"> 1 </TD>
        <TD PORT="f2"> 0 </TD>
        <TD PORT="f3"> 0 </TD>

        <TD PORT="f4"> 1 </TD>
        <TD PORT="f5"> 0 </TD>
        <TD PORT="f6"> 0 </TD>
        <TD PORT="f7"> 1 </TD>
    </TR> 
</TABLE>>]; 

struct2 [label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" >  
    <TR> <TD ALIGN="left" PORT="f0"> RSTDISBL (reset pin is enabled) </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f1"> WDTON (WDT not always on) </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f2"> SPIEN (allow serial programming)  </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f3"> CKOPT (full output swing) </TD> </TR>

    <TR> <TD ALIGN="left" PORT="f4"> EESAVE (don't preserve EEPROM over chip erase)  </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f5"> BOOTSZ1 </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f6"> BOOTSZ0 </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f7"> BOOTRST (boot reset vector at 0x0000) </TD> </TR>
</TABLE>>]; 

struct1:f0:s -> struct2:f0:w;
struct1:f1:s -> struct2:f1:w;
struct1:f2:s -> struct2:f2:w; 
struct1:f3:s -> struct2:f3:w;

struct1:f4:s -> struct2:f4:w;
struct1:f5:s -> struct2:f5:w;
struct1:f6:s -> struct2:f6:w; 
struct1:f7:s -> struct2:f7:w;
} 

Sau đó chạy một trong những lệnh đó.

dot -Tpng byte.dot -o byte.png 
dot -Tps  byte.dot -o byte.ps

Có lẽ nó sẽ đẹp hơn nếu chúng ta không vượt qua tất cả các dòng ở giữa?

văn bản thay thế

Tôi vừa chuyển tên được đặt trong bảng thứ hai từ f0..f7 sang f7..f0.

<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" >
    <TR> <TD ALIGN="left" PORT="f7"> RSTDISBL (reset pin is enabled) </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f6"> WDTON (WDT not always on) </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f5"> SPIEN (allow serial programming)  </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f4"> CKOPT (full output swing) </TD> </TR>

    <TR> <TD ALIGN="left" PORT="f3"> EESAVE (don't preserve EEPROM over chip erase)  </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f2"> BOOTSZ1 </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f1"> BOOTSZ0 </TD> </TR>
    <TR> <TD ALIGN="left" PORT="f0"> BOOTRST (boot reset vector at 0x0000) </TD> </TR>
</TABLE>>];

5

Đó là một cách khá tẻ nhạt để hiển thị các trường trong một số nhị phân. Đây là đoạn trích từ mã nguồn thực tế cho thấy cách tôi thực hiện:

         setreg b'00010000 ', eccp1as
                 ; 0 ------- xóa mọi sự kiện tắt máy hiện có
                 ; -001 ---- tắt PWM trên bộ so sánh 1 cao
                 ; ---- 00-- Trạng thái tắt máy của P1A và P1C ở mức thấp
                 ; ------ 00 Trạng thái tắt máy của P1B và P1D ở mức thấp

         setreg b'10000000 ', pwm1con
                 ; 1 ------- tự động khởi động lại khi điều kiện tắt máy biến mất
                 ; -0000000 không chậm trễ khởi động lại

         setreg b'00000001 ', pstrcon
                 ; XXX ----- không sử dụng
                 ; --- 0 ---- tay lái pin đầu ra có hiệu lực ngay lập tức
                 ; ---- 0 --- Pin P1D không được điều khiển, có chức năng cổng bình thường
                 ; ----- 0-- Pin P1C không được điều khiển, có chức năng cổng bình thường
                 ; ------ 0- Pin P1B không được điều khiển, có chức năng cổng bình thường
                 ; ------- 1 ổ đĩa P1A từ tín hiệu PWM

Tôi nghĩ rằng điều này dễ hơn ví dụ công phu của bạn, nhưng vẫn hiển thị thông tin tương tự. Vâng, tôi thực sự viết mã như thế này.


4

Trong trình soạn thảo văn bản yêu thích của bạn. Tôi có thể giới thiệu vim .


2
Đó chính xác là những gì tôi làm ... Tôi không thực sự hiểu câu hỏi này. :-)
akohlsmith

Tôi cũng đề nghị rằng những điều này được thực hiện bằng tay, giống như tất cả các AA thích hợp. :)
XtL


1

Trong trình chỉnh sửa của Dos Navigator có chế độ vẽ đặc biệt. Bạn có thể kích hoạt vẽ đường đôi bằng cách nhấn F4, sau đó chọn lại F4 cho một dòng và một lần nữa để tắt. Bạn có thể dễ dàng vẽ các đường bằng các phím con trỏ trong khi giữ phím shift.

1 1 0 0   1 1 0 0 ───────┬┐
│ │   ║       ║ │        │├───────┐
│ │   ║       ║ └────────┴┘       │
│ │   ║       ║                   │
│ │   ║       ║                   │
│ │   ║       ║                   │
│ │   ║       ╚═════════════╗     │
│ │   ╚═════════════════════╝     │
│ │                               │
│ │                               │
│ └───────────────────────┬┐     ┌┘
│                 ┌┬┐┌┐  ┌┘└┐   ┌┘
└───────────────┐┌┤│││└┐┌┘  └┐ ┌┘
                └┘└┘└┘ └┘    └─┘

2
Chế độ Emacs Artist cũng làm điều đó, mà không cần dùng đến các biểu tượng không phải ASCII. Tôi vẫn chỉ đơn giản gõ những thứ này, mặc dù ghi đè, các lệnh lặp lại và vị trí miễn phí có thể giúp ích.
Yann Vernier

0

ditaa làm những gì bạn đang tìm kiếm. Hình ảnh sau đây được tạo ra từ văn bản thô của bạn ở trên.

văn bản thay thế

Có thể cần một chút chỉnh sửa để có được định dạng đúng ...


1
Biết gì không? Đây không phải là những gì OP đang tìm kiếm, mặc dù sự mát mẻ của nó. Anh ấy muốn thứ gì đó sẽ tạo ra nghệ thuật ASCII cho anh ấy ... Tôi không thể đánh giá thấp bài đăng của mình ...
J. Polfer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.