Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- assume cs: code, ds: data
- data segment
- str1 db 10, 9 dup (0)
- str2 db 10, 9 dup (0)
- ennd db 0dh,0ah, '$'
- res db 10, 9 dup (0)
- data ends
- code segment
- calc proc
- push bp
- mov bp, sp
- mov si, [bp+4] ;str2
- mov di, [bp+6] ;str1
- mov bl, [si+1] ;n2
- mov bh, [di+1] ;n1
- cmp bl, bh
- jge setIter ;n2 >= n1
- mov cl, bh
- setIter:
- mov cl, bl
- ;если разные длины, кинуть 0 в начало меньшей
- ; add si, 1
- ; add di, 1
- ; add si, cx ;указ на последний элем str2
- ; add di, cx ;указ на последний элем str1
- lopa:
- mov al, 0
- mov ah, 0
- mov bl, 0
- mov si, [bp+4] ;str2
- mov di, [bp+6] ;str1
- add si, 1
- add di, 1
- add si, cx ;указ на последний элем str2
- add di, cx ;указ на последний элем str1
- mov al, [si] ;str2
- mov bl, [di] ;str1
- mov dl, 0
- sub al, 30h
- sub bl, 30h
- add al, bl ;сумма в ax
- mov bl, 10
- div bl
- cmp al, 0 ;5/10 = 0 и 5
- je go
- cmp ah, 0 ;есть ли остаток
- je go
- mov dl, al ;если есть
- go: ;если нет
- push si
- mov si, [bp+8] ;res
- add si, 1
- add si, cx
- mov bh, ah
- add ah, 30h
- mov [si], ah
- pop si
- mov si, 0
- add si, cx ;указывает на предпоследний эл
- cmp dl, 0 ;есть ли десяток
- je zz
- mov al, [si]
- sub al, 30h
- add al, dl
- add al, 30h
- mov [si], al
- zz:
- sub di, 1
- loop lopa
- pop bp
- pop ax
- pop bx
- pop cx
- pop dx
- push cx
- push bx
- push dx
- push ax
- ret
- calc endp
- start:
- mov ax, data
- mov ds, ax
- mov dx, offset str1 ; в dx перемещаем адрес строки
- mov si, dx
- mov ax, 0
- mov ah, 0Ah ; ввод
- int 21h
- mov dx, offset ennd ; кинули в конец строки EOL
- ;mov dx, offset wh
- mov ah, 09h ; вывод
- int 21h
- mov dx, offset str2 ; в dx перемещаем адрес строки
- mov si, dx
- mov ah, 0Ah ; ввод
- int 21h
- mov dx, offset ennd ; кинули в конец строки EOL
- ;mov dx, offset wh
- mov ah, 09h ; вывод
- int 21h
- mov ah, 0
- push offset res
- push offset str1
- push offset str2
- call calc
- pop si
- add si, 2
- mov dx, si
- mov ah, 09h
- int 21h
- mov ah, 4ch
- int 21h
- code ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement