Загрузка данных


MOV BX, 0200h

MOV BYTE PTR DS:[BX]+0, 013h
MOV BYTE PTR DS:[BX]+1, 003h
MOV BYTE PTR DS:[BX]+2, 020h
MOV BYTE PTR DS:[BX]+3, 00Eh
MOV BYTE PTR DS:[BX]+4, 002h
MOV BYTE PTR DS:[BX]+5, 020h
MOV BYTE PTR DS:[BX]+6, 040h
MOV BYTE PTR DS:[BX]+7, 022h
MOV BYTE PTR DS:[BX]+8, 00Bh
MOV BYTE PTR DS:[BX]+9, 002h
MOV BYTE PTR DS:[BX]+10, 020h
MOV BYTE PTR DS:[BX]+11, 043h
MOV BYTE PTR DS:[BX]+12, 020h
MOV BYTE PTR DS:[BX]+13, 002h
MOV BYTE PTR DS:[BX]+14, 023h
MOV BYTE PTR DS:[BX]+15, 003h
MOV BYTE PTR DS:[BX]+16, 003h
MOV BYTE PTR DS:[BX]+17, 020h
MOV BYTE PTR DS:[BX]+18, 044h
MOV BYTE PTR DS:[BX]+19, 020h
MOV BYTE PTR DS:[BX]+20, 044h
MOV BYTE PTR DS:[BX]+21, 020h
MOV BYTE PTR DS:[BX]+22, 002h
MOV BYTE PTR DS:[BX]+23, 002h
MOV BYTE PTR DS:[BX]+24, 020h
MOV BYTE PTR DS:[BX]+25, 040h
MOV BYTE PTR DS:[BX]+26, 020h
MOV BYTE PTR DS:[BX]+27, 043h
MOV BYTE PTR DS:[BX]+28, 023h
MOV BYTE PTR DS:[BX]+29, 044h
MOV BYTE PTR DS:[BX]+30, 020h
MOV BYTE PTR DS:[BX]+31, 001h
MOV BYTE PTR DS:[BX]+32, 003h
MOV BYTE PTR DS:[BX]+33, 020h
MOV BYTE PTR DS:[BX]+34, 044h
MOV BYTE PTR DS:[BX]+35, 020h
MOV BYTE PTR DS:[BX]+36, 063h
MOV BYTE PTR DS:[BX]+37, 040h
MOV BYTE PTR DS:[BX]+38, 020h
MOV BYTE PTR DS:[BX]+39, 002h
MOV BYTE PTR DS:[BX]+40, 004h
MOV BYTE PTR DS:[BX]+41, 020h
MOV BYTE PTR DS:[BX]+42, 043h
MOV BYTE PTR DS:[BX]+43, 020h
MOV BYTE PTR DS:[BX]+44, 061h
MOV BYTE PTR DS:[BX]+45, 020h
MOV BYTE PTR DS:[BX]+46, 061h
MOV BYTE PTR DS:[BX]+47, 020h
MOV BYTE PTR DS:[BX]+48, 080h
MOV BYTE PTR DS:[BX]+49, 020h
MOV BYTE PTR DS:[BX]+50, 000h
MOV BYTE PTR DS:[BX]+51, 005h
MOV BYTE PTR DS:[BX]+52, 022h
MOV BYTE PTR DS:[BX]+53, 066h
MOV BYTE PTR DS:[BX]+54, 020h
MOV BYTE PTR DS:[BX]+55, 002h
MOV BYTE PTR DS:[BX]+56, 001h
MOV BYTE PTR DS:[BX]+57, 026h
MOV BYTE PTR DS:[BX]+58, 065h
MOV BYTE PTR DS:[BX]+59, 021h
MOV BYTE PTR DS:[BX]+60, 002h
MOV BYTE PTR DS:[BX]+61, 001h
MOV BYTE PTR DS:[BX]+62, 020h
MOV BYTE PTR DS:[BX]+63, 044h
MOV BYTE PTR DS:[BX]+64, 020h
MOV BYTE PTR DS:[BX]+65, 064h
MOV BYTE PTR DS:[BX]+66, 020h
MOV BYTE PTR DS:[BX]+67, 004h
MOV BYTE PTR DS:[BX]+68, 001h
MOV BYTE PTR DS:[BX]+69, 020h
MOV BYTE PTR DS:[BX]+70, 044h
MOV BYTE PTR DS:[BX]+71, 020h
MOV BYTE PTR DS:[BX]+72, 063h
MOV BYTE PTR DS:[BX]+73, 040h
MOV BYTE PTR DS:[BX]+74, 020h
MOV BYTE PTR DS:[BX]+75, 004h
MOV BYTE PTR DS:[BX]+76, 002h
MOV PTR DS:[BX]+77, 020h
MOV BYTE PTR DS:[BX]+78, 043h
MOV BYTE PTR DS:[BX]+79, 020h
MOV BYTE PTR DS:[BX]+80, 063h
MOV BYTE PTR DS:[BX]+81, 020h
MOV BYTE PTR DS:[BX]+82, 040h
MOV BYTE PTR DS:[BX]+83, 020h
MOV BYTE PTR DS:[BX]+84, 003h
MOV BYTE PTR DS:[BX]+85, 002h
MOV BYTE PTR DS:[BX]+86, 020h
MOV BYTE PTR DS:[BX]+87, 043h
MOV BYTE PTR DS:[BX]+88, 023h
MOV BYTE PTR DS:[BX]+89, 043h
MOV BYTE PTR DS:[BX]+90, 020h
MOV BYTE PTR DS:[BX]+91, 002h
MOV BYTE PTR DS:[BX]+92, 003h
MOV BYTE PTR DS:[BX]+93, 020h
MOV BYTE PTR DS:[BX]+94, 042h
MOV BYTE PTR DS:[BX]+95, 020h
MOV BYTE PTR DS:[BX]+96, 001h
MOV BYTE PTR DS:[BX]+97, 020h
MOV BYTE PTR DS:[BX]+98, 043h
MOV BYTE PTR DS:[BX]+99, 020h
MOV BYTE PTR DS:[BX]+100, 002h
MOV BYTE PTR DS:[BX]+101, 003h
MOV BYTE PTR DS:[BX]+102, 020h
MOV BYTE PTR DS:[BX]+103, 041h
MOV BYTE PTR DS:[BX]+104, 020h
MOV BYTE PTR DS:[BX]+105, 003h
MOV BYTE PTR DS:[BX]+106, 020h
MOV BYTE PTR DS:[BX]+107, 042h
MOV BYTE PTR DS:[BX]+108, 020h
MOV BYTE PTR DS:[BX]+109, 002h
MOV BYTE PTR DS:[BX]+110, 004h
MOV BYTE PTR DS:[BX]+111, 020h
MOV BYTE PTR DS:[BX]+112, 040h
MOV BYTE PTR DS:[BX]+113, 020h
MOV BYTE PTR DS:[BX]+114, 003h
MOV BYTE PTR DS:[BX]+115, 020h
MOV BYTE PTR DS:[BX]+116, 042h
MOV BYTE PTR DS:[BX]+117, 020h
MOV BYTE PTR DS:[BX]+118, 002h
MOV BYTE PTR DS:[BX]+119, 005h
MOV BYTE PTR DS:[BX]+120, 021h
MOV BYTE PTR DS:[BX]+121, 003h
MOV BYTE PTR DS:[BX]+122, 020h
MOV BYTE PTR DS:[BX]+123, 042h
MOV BYTE PTR DS:[BX]+124, 020h
MOV BYTE PTR DS:[BX]+125, 002h
MOV BYTE PTR DS:[BX]+126, 00Ch
MOV BYTE PTR DS:[BX]+127, 023h
MOV BYTE PTR DS:[BX]+128, 002h
MOV BYTE PTR DS:[BX]+129, 013h

MOV SI, 0200h
MOV DI, 0F600h
ADD DI, 12
MOV DH, 20

row_loop:
    CMP DH, 0
    JE done
    MOV CH, 20

run_loop:
    MOV BH, DS:[SI]
    INC SI
    MOV AH, BH
    SHR AH, 1
    SHR AH, 1
    SHR AH, 1
    SHR AH, 1
    SHR AH, 1
    MOV CL, BH
    AND CL, 01Fh
    INC CL

draw_run:
    CALL draw_pixel
    DEC CH
    DEC CL
    JNZ draw_run
    CMP CH, 0
    JNZ run_loop

    ADD DI, 48
    DEC DH
    JMP row_loop

draw_pixel:
    PUSH AX
    CMP AH, 0
    JE color_white
    CMP AH, 1
    JE color_black
    CMP AH, 2
    JE color_cyan
    CMP AH, 3
    JE color_gray
    CMP AH, 4
    JE color_yellow

color_white:
    MOV AH, 0Fh
    JMP render
color_black:
    MOV AH, 00h
    JMP render
color_cyan:
    MOV AH, 0Bh
    JMP render
color_gray:
    MOV AH, 08h
    JMP render
color_yellow:
    MOV AH, 0Eh
    JMP render

render:
    MOV AL, 0DBh
    MOV ES:[DI], AX
    ADD DI, 2
    MOV ES:[DI], AX
    ADD DI, 2
    POP AX
    RET

done:
    HLT