Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model TINY .data
- array db "IVANOV V.Y.",10,13 db "PETROV R.A.",10,13 db "KERGAKOV A.A.",10,13 db "KARPIN V.G.",10,13 db "ARSHAVIN A.S.",10,13 db "SYCHEV D.Y.",10,13 db "KOLYANOV I.V.",10,13 db "KIRYAKOV S.V",10,13 db "MOSTOVOI A.V.",10,13 db "SIDOROV I.V.",10,13 db "$" array2 db "SHUNIN A.V.",10,13 db "AKINFEEV I.V.",10,13 db "MALAFEEV V.A.",10,13 db "$"
- string db "---------------------$",10,13 .code
- ; swap funtion swap: pop dx pop bx ; bx = &array push dx mov cx, 15d ; cx = num of loop for: push bx add bx, cx dec bx mov al, [bx] ; ax = first word mov dl, [bx+15d] ; dx = second word mov [bx], dl mov [bx+15d], al pop bx loop for ret ; end of swap function
- start: mov ax, @data mov ds, ax
- mov bx, offset array mov di, offset array2
- add bx,150d ; конец массива
- mov dx,[di] ; dx = word of array2 mov [bx], dx ; [bx]= last word of array
- ;print new list mov dx, offset array mov ah, 9h int 21h
- ~ 5 ~
- mov dx, offset string mov ah, 9h int 21h mov cx, 12d loop2: push cx mov bx, offset array
- mov cx, 12d mov di, offset array mov si,14 loop1:
- mov al, [bx+15d] mov ah, [bx] cmp al, ah ; сравниваем количество букв je m1 ; если равно cmp al, ah ; сравниваем количество букв ja inc_str ; если выше (больше) mov bx,di push bx push cx push bx call swap pop cx pop bx mov di,bx jmp inc_str m1: add bx,1d sub si,1 cmp si,0 jne loop1 jmp inc_str inc_str: mov bx,di add bx, 15d mov di,bx loop loop1
- pop cx loop loop2 mov dx, offset array mov ah, 9h int 21h mov ah, 4ch int 21h
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement