Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format MZ
- entry Main: Start
- segment Main
- Input_Str_ax:
- mov dx, ax
- mov ah, 0AH
- int 21H
- ret
- StrToInt:
- push cx
- push si
- mov si, ax
- mov cl, [si+1]
- mov ch, 0
- add si, cx
- mov bl, 0
- FindNumLoop:
- mov bh, [si]
- sub bh, '0'
- cmp cl,2
- jne @F
- movzx ax, bh
- imul ax, 10
- mov bh, al
- @@:
- add bl, bh
- inc si
- dec cl
- jnz FindNumLoop
- pop si
- pop cx
- ret
- Output:
- mov cx, 0
- mov bx, 10
- Output1:
- xor dx, dx
- div bx
- add dx, '0'
- push dx
- inc cx
- cmp ax, 0
- jne Output1
- mov ah, 02h
- Output2:
- pop dx
- int 21h
- dec cx
- jnz Output2
- mov dx, ' '
- int 21h
- ret
- FindValStek:
- push bp
- mov bp, sp
- mov ax, [bp + 6]
- mov cx, [bp + 4]
- imul ax, 32
- mov bx, ax
- mov ax, cx
- mul al
- imul ax,7
- add ax, bx
- mov sp, bp
- pop bp
- ret
- Start:
- mov ax, Dat
- mov ds, ax
- ;mov ax, Str1
- ;call Input_Str_ax
- ;mov ax, Str1
- ;call StrToInt
- ;mov [Num1], bx
- ;mov ah, 09h
- ;mov dx, newL
- ;int 21h
- ;mov ax, Str2
- ;call Input_Str_ax
- ;mov ax, Str2
- ;call StrToInt
- ;mov [Num2], bx
- mov ax, [Num1]
- mov cx, [Num2]
- call far Proc: FindValRegAxCx
- call Output
- call far Proc: FindValMem
- call Output
- push [Num1]
- push [Num2]
- call FindValStek
- call Output
- mov ah, 08h
- int 21h
- segment Proc
- FindValRegAxCx:
- imul ax, 32
- mov bx, ax
- mov ax, cx
- mul al
- imul ax,7
- add ax, bx
- retf
- FindValMem:
- mov ax, [Num1]
- mov cx, [Num2]
- imul ax, 32
- mov bx, ax
- mov ax, cx
- mul al
- imul ax,7
- add ax, bx
- retf
- segment Dat
- newL db 13,10, '$'
- Str1 db 3, 0, 2 dup (?)
- Str2 db 3, 0, 2 dup (?)
- Num1 dw 12
- Num2 dw 12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement