ทำธงชาติไอซ์แลนด์ ด้วย debug (ดีบัก) ภาษา Assembly

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderators: mindphp, ผู้ดูแลกระดาน

ธวัชชัย แสนหาญ
PHP Super Member
PHP Super Member
Posts: 499
Joined: 15/11/2018 10:02 am

ทำธงชาติไอซ์แลนด์ ด้วย debug (ดีบัก) ภาษา Assembly

Postby ธวัชชัย แสนหาญ » 27/11/2018 11:57 am

รูปแบบ

Code: Select all

model medium
   .stack
   .data
   (................)  #ตรงนี้ใช้สำหรับประกาศตัวแปรในการทำงาน
   .code
   .386
   .startup
   (................)  #ตรงนี้จะเป็นส่วนที่เราสร้างคือ โค้ดที่ใช้ในการสร้างธง
   .......
   .......
   .......
   .exit
   end

ตัวแปรที่กำหนด

Code: Select all

   ANT0 DW 0
   ANT1 DW 0      ;0   - 480
   ANT2 DW 187    ;187 - 294
   ANT3 DW 0      ;0 - 480
   ANT4 DW 215      ;215 - 266

โค้ดที่ใช้ในการทำทั้งหมด

Code: Select all

   .model medium
   .stack
   .data
   ANT0 DW 0
   ANT1 DW 0      ;0   - 480
   ANT2 DW 187    ;187 - 294
   ANT3 DW 0      ;0 - 480
   ANT4 DW 215      ;215 - 266
   .code
   .386
   .startup   
   mov ah,00h ;00H : Set video mode
   mov al,12h ;12H : Select alternative routine  640x480 16 color graphics (VGA)
   int 10h
   
   mov ah,0bh
   mov bh,00
   mov bl,01  ; ??
   int 10h
;---------------------------------------------------------------------------
   mov ah,0ch
   mov al,255  ;pixel color white
   mov bh,00
   int 10h
LI0:   
   INC ANT0
   mov cx,ANT0
   mov dx,ANT1
   int 10h
   cmp ANT0,294          ;????????????????
   jne LI0
   jz RI0
RI0:
   mov ANT0,187            ;?????????????????
   cmp ANT1,480          ;??????????????
   jne CNTA
   jz EXIT1              ;???? loop EXIT1    
CNTA:
   inc ANT1
   jmp LI0   
;---------------------------------------------------------------------------
EXIT1:   
mov ah,0ch
   mov al,15  ;pixel color white
   mov bh,00
   int 10h
LI1:   
   INC ANT0
   mov cx,ANT0
   mov dx,ANT2
   int 10h
   cmp ANT0,640
   jne LI1
   jz RI1
RI1:
   mov ANT0,0
   cmp ANT2,294   
   jne CNTB
   jz EXIT2
CNTB:
   inc ANT2
   jmp LI1
;---------------------------------------------------------------------------      
EXIT2:   
mov ah,0ch
   mov al,04  ;pixel color red
   mov bh,00
   int 10h
LI2:   
   INC ANT0
   mov cx,ANT0
   mov dx,ANT3
   int 10h
   cmp ANT0,266
   jne LI2
   jz RI2
RI2:
   mov ANT0,215
   cmp ANT3,480
   jne CNTC
   jz EXIT3
CNTC:
   inc ANT3
   jmp LI2
;----------------------------------------------------------------------------   
EXIT3:
mov ah,0ch
   mov al,04  ;pixel color white
   mov bh,00
   int 10h
LI3:   
   INC ANT0
   mov cx,ANT0
   mov dx,ANT4
   int 10h
   cmp ANT0,640
   jne LI3
   jz RI3
RI3:
   mov ANT0,0
   cmp ANT4,266
   jne CNTD
   jz EXIT
CNTD:
   inc ANT4
   jmp LI3
EXIT:
   .exit
   end

ผลลัพธ์
2.PNG
2.PNG (49.76 KiB) Viewed 1110 times

Return to “Share Knowledge”

Who is online

Users browsing this forum: No registered users and 41 guests