Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ADAT SEGMENT
- TOMB DW 1223, 12, 45, 666, 77777, 92376, 67185, 99734, 453, 1115
- ADAT ENDS
- CODE SEGMENT
- ASSUME DS:ADAT, CS:CODE
- START: MOV AX, ADAT
- MOV DS, AX
- MOV CX, 10
- XOR SI, SI
- XOR DI, DI
- XOR BX, BX
- XOR DX, DX
- KCIKL: MOV AX,TOMB[SI]
- ;Felhasználás: SI, aktuális elem indexe; DI, eredményindex; BX, DI egyes bitjei; DX, akt. elem bitjei
- PUSH CX ;CX két ciklusváltozó, külsőt bestackelem, hogy a belsőt játszhassam
- MOV CX, 16
- BCIKL: SHL AX, 1
- ADC DX, 0 ;DX=DX+carryflag... az egy ha egy lépett ki... számolja
- LOOP BCIKL
- POP CX ;ki CX-et a helyére
- CMP BX, DX
- JNC TOVA
- MOV DX, BX ;lementem a nagyobbat
- MOV DI, SI
- TOVA: INC SI
- INC SI
- LOOP KCIKL
- 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)
- INC DI ;0.elem ezután már 1, és így tovább
- MOV AX, DI
- MOV BL, 10
- DIV BL
- MOV BX, AX
- MOV AH, 2
- CMP BL, 0
- JZ TIZK
- MOV DL, BL
- ADD DL, '0'
- INT 21H
- TIZK: MOV DL, BH
- ADD DL, '0'
- INT 21H
- MOV AH,4CH
- INT 21H
- CODE ENDS
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement