Advertisement
GraionDilach

Tomi assembly

Nov 2nd, 2011
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ADAT SEGMENT
  2. TOMB DW 1223, 12, 45, 666, 77777, 92376, 67185, 99734, 453, 1115
  3. ADAT ENDS
  4.  
  5. CODE SEGMENT
  6.     ASSUME DS:ADAT, CS:CODE
  7. START:  MOV AX, ADAT
  8.     MOV DS, AX
  9.     MOV CX, 10
  10.     XOR SI, SI
  11.     XOR DI, DI
  12.     XOR BX, BX
  13.     XOR DX, DX
  14. KCIKL:  MOV AX,TOMB[SI]
  15. ;Felhasználás: SI, aktuális elem indexe; DI, eredményindex; BX, DI egyes bitjei; DX, akt. elem bitjei
  16.     PUSH CX ;CX két ciklusváltozó, külsőt bestackelem, hogy a belsőt játszhassam
  17.     MOV CX, 16
  18. BCIKL:  SHL AX, 1
  19.     ADC DX, 0 ;DX=DX+carryflag... az egy ha egy lépett ki... számolja
  20.     LOOP BCIKL
  21.     POP CX  ;ki CX-et a helyére
  22.     CMP BX, DX
  23.     JNC TOVA
  24.     MOV DX, BX  ;lementem a nagyobbat
  25.     MOV DI, SI
  26. TOVA:   INC SI
  27.     INC SI
  28.     LOOP KCIKL
  29.     SHR DI, 1 ;osztunk kettővel (0.dik elenm 0 volt, 1.elem 2-dik, stb... bináris jobbratolás=kettővel osztás (10 bináris 2, 1 bináris 1)
  30.     INC DI ;0.elem ezután már 1, és így tovább
  31.     MOV AX, DI
  32.     MOV BL, 10
  33.     DIV BL
  34.     MOV BX, AX
  35.     MOV AH, 2
  36.     CMP BL, 0
  37.     JZ TIZK
  38.     MOV DL, BL
  39.     ADD DL, '0'
  40.     INT 21H
  41. TIZK:   MOV DL, BH
  42.         ADD DL, '0'
  43.         INT 21H
  44.     MOV AH,4CH
  45.     INT 21H
  46. CODE ENDS
  47. END START
  48.    
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement