Advertisement
Guest User

Labor 8.

a guest
Apr 10th, 2020
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Code    Segment
  2.     assume CS:Code, DS:Data, SS:Stack
  3.  
  4. Start:
  5. ;Feladat_1:
  6. ;==========================================================================
  7. ;1. feledat:
  8. ; Parancssori paraméter feldolgozás
  9. ; Olvasson be parancssori paraméterként egy számot az alábbi formában:
  10. ; Használja ezt a formátumot: "zh.exe -19"
  11. ; A paraméter egyetlen szám 00 és 99 között! 0 és 9 között a számokat 00 és 09
  12. ; módon adjuk meg.
  13. ; A fölösleges szóközöket nem kell lekezelni!!!!! Csak egy szóköz jelzi, hogy paraméter.
  14. ; A megadott paraméter egy színkód lesz, ennek 1/10-ed része pedig a kezdősebesség!
  15. ;
  16. ; Ha nincs paraméter megadva, akkor a default értékadás fusson le! Ha nem '-' a
  17. ; szóköz utáni karakter, akkor vegyük úgy, hogy nincs paraméter megadva!
  18. ;
  19. ; SI regiszteren keresztül számként adja tovább a következő feladatnak a
  20. ; színkódot és a kezdősebességet!
  21. ;
  22. ;==========================================================================
  23.     mov ax, 3
  24.     int 10h
  25.  
  26.     mov di, 80h
  27.     mov dl, [di]
  28.    
  29.     cmp dl, 4
  30.     jnz Default
  31.    
  32.     add di, 2
  33.     mov dl, [di]
  34.     cmp dl, "-"
  35.     jnz Default
  36.    
  37.     mov al, [di+1]
  38.     cmp al, "0"
  39.     jc Default
  40.     cmp al, ":"
  41.     jnc Default
  42.     sub al, 48
  43.     mov dl, 10
  44.     mul dl
  45.     mov dl, [di+2]
  46.     cmp dl, "0"
  47.     jc Default
  48.     cmp dl, ":"
  49.     jnc Default
  50.     sub dl, 48
  51.     add al, dl
  52.    
  53.     mov cl, al
  54.    
  55.     xor ah, ah
  56.     xor dx, dx
  57.     mov bx, 10
  58.     div bx
  59.    
  60.     mov ch, al
  61.    
  62.     mov si, cx
  63.     jmp Init
  64.  
  65. Default:
  66.     mov cl, 60 ; színkód
  67.     mov ch, 6 ; kezdősebesség
  68.     mov si,cx
  69. Init:
  70.     mov ax, Code
  71.     mov DS, AX
  72.  
  73.     mov ah,9
  74.     mov dx, offset feladat1
  75.     int 21h
  76.    
  77.     mov dx, si     
  78.     mov ah, 02h
  79.     int 21h
  80.    
  81.     mov dl, dh
  82.     mov ah, 02h
  83.     int 21h
  84.    
  85.     xor ax, ax
  86.     int 16h
  87.  
  88. ;==========================================================================
  89. ;2. feledat:
  90. ; Ferdehajítás VGA (320x200px, 8bit) módban
  91. ; 0,0 koordinátáról indulva rajzolja ki t=0-tól kezdve t=20 ideig a golyó
  92. ; (egyetlen pixel) röppályáját! A pixel szine és V0 kezdősebesség az előző
  93. ; feladatban megadott érték legyen (SI-ben)!
  94. ; videómemória címének képzése: y*320+x
  95. ; Sy = (t^2)/2
  96. ; Sx = V0 * t
  97. ; Verem: idő (iteráció, egyesével növekszik, NEM KELL HOZZÁ BIOS ÓRA!)
  98. ; DI: labda pozíciója
  99. ;**************************************************************************
  100. ;VGA mód
  101.     mov ax, 13h
  102.     int 10h
  103.     mov ax, 0a000h
  104.     mov es, ax
  105.    
  106. ;kezdő koordináták
  107.     mov cl,0 ;sor
  108.     mov ch,0 ;oszlop
  109.     mov di,cx
  110.  
  111. ;"idő" a veremben (t0)
  112.     mov ax,0
  113.     push    ax
  114.  
  115. RajzolasEleje:
  116.     ;Pozíció számítása
  117.     ;Sy
  118.     pop ax
  119.     push ax
  120.     mul ax
  121.     shr ax,1
  122.     mov cl, al
  123.    
  124.     ;Sx
  125.     pop ax
  126.     push ax
  127.     mov bx, si
  128.     mov bl, bh
  129.     xor bh, bh
  130.     mul bx
  131.     mov ch, al
  132.    
  133.     mov di, cx
  134.    
  135.     ;Pozíció átalakítása, hogy címezhető legyen vele a memória 
  136.     mov cx, di
  137.     xor ah, ah
  138.     mov al, cl
  139.     mov bx, 320
  140.     mul bx
  141.     mov cl, ch
  142.     xor ch, ch
  143.     add ax, cx 
  144.    
  145.     ;Pont kirajzolása
  146.     mov cx, di
  147.     mov di, ax
  148.     mov ax, si
  149.     xor ah, ah
  150.     mov es:[di], al
  151.     mov di, cx
  152.    
  153.     ;Idő növelése
  154.     pop ax
  155.     inc ax
  156.    
  157.     cmp ax, 21
  158.     jz RajzolasVege
  159.    
  160.     push ax
  161.     jmp RajzolasEleje
  162.    
  163. RajzolasVege:
  164.  
  165. Var:
  166.     xor ax,ax
  167.     int 16h
  168.  
  169. Program_Vege:
  170.     mov ax, 3
  171.     int 10h
  172.    
  173.     pop ax
  174.     mov ax, 4c00h
  175.     int 21h
  176.  
  177. feladat1    db  "1. feladat, parancssori parameterek: $"
  178.  
  179. Code    Ends
  180.  
  181. Data    Segment
  182.  
  183. Data    Ends
  184.  
  185. Stack   Segment
  186.  
  187. Stack   Ends
  188.     End Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement