Advertisement
Hakuhun

[ASM] Ferdehajítás, paraméterkezelés

Oct 1st, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. Code    Segment
  3.     assume CS:Code, DS:Data, SS:Stack
  4.  
  5. Start:
  6.     ;mov di, 82h
  7.     mov di, 80h
  8.    
  9.     mov dl, [di]
  10.     cmp dl, 0
  11.     jz Default
  12.  
  13.     mov di, 82h
  14.    
  15.     mov cx, 10
  16. Keres:
  17.     mov dl, [di]
  18.     cmp dl, "/"
  19.     jz ParamKezdet
  20.    
  21.     inc di
  22.     loop Keres
  23.     jmp Default
  24.    
  25. ParamKezdet:
  26.    
  27.     inc di
  28.     mov bl, [di]
  29.    
  30.     cmp bl, "?"
  31.     jz Help_Iside
  32.    
  33.     sub bl, 48
  34.    
  35.     mov cx, 10
  36.     xor ax, ax
  37.     mov ax, 0
  38.    
  39. LoopParam1:
  40.     cmp bl, al
  41.     jnz Hiba
  42.     inc ax
  43.     loop LoopParam1
  44.    
  45.     inc di
  46.     mov bh, [di]
  47.     sub bh, 48
  48.    
  49.     xor ax, ax
  50.     mov ax, 0
  51.    
  52. LoopParam2:
  53.     cmp bh, ah
  54.     jnz Hiba
  55.     inc ax
  56.     loop LoopParam2
  57.    
  58.     mov ax, 10
  59.     mul bl
  60.    
  61.     add al, bh
  62.     mov cx, ax
  63.    
  64.     jmp Init
  65.    
  66. Help_Iside:
  67.     jmp Help
  68.    
  69. Hiba:
  70.     mov ax, Code
  71.     mov DS, AX
  72.  
  73.     mov dx, offset Segitseg
  74.     mov ah, 09h
  75.     int 21h
  76.    
  77.     xor ax, ax
  78.     int 16h
  79.    
  80.     jmp Default
  81.    
  82. Default:
  83.     mov cx, 10 ; alap v0
  84.    
  85. Init:
  86.     mov ax, Code
  87.     mov DS, AX
  88.  
  89.     xor di, di ;golyo
  90.     xor si, si ;sor
  91.    
  92.     xor dx, dx
  93.     push dx ;verembe az idő, ami most
  94.    
  95.     mov ax, 03h
  96.     int 10h
  97.    
  98. Rajz:
  99.     mov bx, di ; dx koord
  100.     mov dh, bl ;di alsó bájt
  101.     mov bx, si ; oszlop koord
  102.     mov dl, bl
  103.     xor bh, bh
  104.     mov ah, 02h
  105.     int 10h
  106.    
  107.     mov dx, offset Labda
  108.     mov ah, 09h
  109.     int 21h
  110.    
  111.     ;Sy kiszámítása
  112.     pop ax
  113.     push ax
  114.    
  115.     mul al
  116.     shr ax, 1
  117.    
  118.     mov di, ax
  119.    
  120.     ;sx számítás
  121.     pop ax
  122.     inc ax
  123.     push ax
  124.     dec ax
  125.    
  126.     mul cl
  127.     mov si, ax
  128.    
  129.     cmp si, 80
  130.     jnc Var
  131.    
  132.     cmp di, 25
  133.     jnc Var
  134.    
  135.     jmp Rajz
  136.    
  137. Var:
  138.     xor ax, ax
  139.     int 16h
  140.  
  141. Program_Vege:
  142.     pop cx
  143.     mov ax, 4c00h
  144.     int 21h
  145.    
  146. Help:
  147.     mov ax, Code
  148.     mov DS, AX
  149.    
  150.     mov ax, 03h
  151.     int 10h
  152.    
  153.     mov dx, offset Segitseg
  154.     mov ah, 09h
  155.     int 21h
  156.    
  157.     jmp Var
  158.  
  159.  
  160. Labda:
  161.     db"*$"
  162.    
  163. Segitseg:
  164.     db"Segítseg a helyes hasznalathoz$"
  165.        
  166. Code    Ends
  167.  
  168. Data    Segment
  169.  
  170. Data    Ends
  171.  
  172. Stack   Segment
  173.  
  174. Stack   Ends
  175.     End Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement