Advertisement
tungSfer

KTMT

May 22nd, 2021
2,014
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .MODEL Small
  2. .CODE
  3.     org 100h
  4.     Jmp Start
  5.     st dw 100                      
  6.     y2 dw 120
  7.     x2 dw 120
  8.     on dw 100
  9.     Color db 4 ; mau do
  10.    
  11. Start:
  12.     Mov AH,0h ; thiet lap che do do hoa
  13.     Mov AL,12h ; VGA mode
  14.     Int 10h
  15.     Mov AX, 0
  16.     Mov AH, 1
  17.     int 21H
  18.     mov st, AX
  19.     mov on, AX
  20.     Mov AX, 0
  21.     Mov AH, 1
  22.     int 21H
  23.     mov x2, AX
  24.     Mov AX, 0
  25.     Mov AH, 1
  26.     int 21H
  27.     mov y2, AX
  28.    
  29.    
  30.     Mov AX, 0
  31.     Mov AH, 1; Cho 1 phim go vao
  32.     Int 21h
  33.     Mov DL, AL
  34.    ;Mov AH,2
  35.    ;Int 21H
  36.     Cmp AL, '1'
  37.     Je RE
  38.     Cmp AL, '2'
  39.     Je TRI
  40.     Cmp AL, '3'
  41.     Je RHOM
  42.     Cmp AL, '#'
  43.     Je END
  44.     Jmp Start
  45. RE:
  46.     Call Rectangle
  47.     Jmp Start
  48. TRI:
  49.     Call Triangle
  50.     Jmp Start
  51. RHOM:
  52.     Call Rhombus
  53.     Jmp Start
  54.  
  55.    
  56. ;Ve hinh chu nhat
  57. Rectangle Proc
  58.     Mov CX,x2
  59.     Sub CX,st
  60.     Mov SI,st
  61.     Mov DI,st
  62.    ; Ve canh tren
  63.     TopR:
  64.         Call DrawPixel ; goi chuong trinh con ve diem anh
  65.         Inc DI ;
  66.         Loop TopR
  67.     Mov CX, y2
  68.     Sub CX, st
  69.     Mov SI, st
  70.    ; Ve canh 2 canh ben
  71.     SideR:
  72.         Mov DI, st
  73.         Call DrawPixel ; goi chuong trinh con ve diem anh
  74.         Mov DI, x2
  75.         Call DrawPixel ; goi chuong trinh con ve diem anh
  76.         Inc SI
  77.         Loop SideR
  78.     Mov CX, x2
  79.     Sub CX, st
  80.     Mov SI, y2
  81.     Mov DI, st
  82.    ; Ve canh duoi
  83.     BotR:
  84.         Call DrawPixel ; goi chuong trinh con ve diem anh
  85.         Inc DI ;
  86.         Loop BotR    
  87.     mov ah, 8
  88.     int 21h
  89.     Mov AH,0
  90.     Mov AL,2
  91.     Int 10h
  92. Ret
  93.    
  94. Rectangle Endp
  95.  
  96.  
  97. ;Ve hinh tam giac    
  98. Triangle Proc
  99.    
  100.     Mov CX, y2
  101.     Sub CX, st
  102.     Mov SI, st
  103.    ;Ve 2 canh ben
  104.     SideT:
  105.         Mov DI, st
  106.         Sub st, 1
  107.         Call DrawPixel ; goi chuong trinh con ve diem anh
  108.         Mov DI, x2
  109.         Add x2, 1
  110.         Call DrawPixel ; goi chuong trinh con ve diem anh
  111.         Inc SI
  112.         Loop SideT
  113.     Mov CX, x2
  114.     Sub CX, st
  115.     Mov SI, y2
  116.     Mov DI, st
  117.    ; Ve canh duoi
  118.     BotT:
  119.         Call DrawPixel ; goi chuong trinh con ve diem anh
  120.         Inc DI ;
  121.         Loop BotT    
  122.     mov ah, 8
  123.     int 21h
  124.     Mov AH,0
  125.     Mov AL,2
  126.     Int 10h
  127. Ret
  128.    
  129. Triangle Endp
  130.  
  131. Rhombus proc
  132.     Mov CX, y2
  133.     Sub CX, st
  134.     Mov SI, st
  135.    ;Ve 2 canh ben tren
  136.     TopSideRH:
  137.         Mov DI, st
  138.         Sub st, 1
  139.         Call DrawPixel ; goi chuong trinh con ve diem anh
  140.         Mov DI, x2
  141.         Add x2, 1
  142.         Call DrawPixel ; goi chuong trinh con ve diem anh
  143.         Inc SI
  144.         Loop TopSideRH
  145.     Mov CX, on
  146.     Sub CX, st
  147.     Add CX, 1
  148.    ;Mov SI, y2
  149.    ; Ve 2 canh ben duoi
  150.     BotSideRH:
  151.         Mov DI,st
  152.         Add st, 1
  153.         Call DrawPixel ; goi chuong trinh con ve diem anh
  154.         Mov DI, x2
  155.         Sub x2, 1
  156.         Call DrawPixel ; goi chuong trinh con ve diem anh
  157.         Inc SI
  158.         Loop BotSideRH    
  159.     mov ah, 8
  160.     int 21h
  161.     Mov AH,0
  162.     Mov AL,2
  163.     Int 10h
  164. Ret    
  165. Rhombus Endp
  166.  
  167. ;To mau 1 pixel
  168. DrawPixel Proc
  169.     Push AX
  170.     Push CX
  171.     Push DX
  172.     Mov DX, SI
  173.     Mov CX,DI
  174.     Mov AL, Color
  175.     Mov AH,0CH
  176.     Int 10h
  177.     Pop DX
  178.     Pop CX
  179.     Pop AX
  180. Ret  
  181.  
  182. DrawPixel Endp
  183.  
  184.  
  185. END:
  186.     mov ah, 4CH
  187.     int 21h
  188. End Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement