Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 100h
- start:
- mov ah, $09 ;вывести в консоль таскСтр
- mov dx, taskStr
- int 21h
- mov ah, $02 ;перевод каретки (0д) и перенос строки (0а)
- mov dx, $0d0a
- int 21h
- mov ah, $09 ;вывести в консоль таскСтр2
- mov dx, taskStr2
- int 21h
- mov ah, $02 ;перевод каретки и перенос строки
- mov dx, $0d0a
- int 21h
- mov ah, $09 ;вывести в консоль ресСтр
- mov dx, resStr
- int 21h
- mov ax, [a] ;сохраняем а в ах
- sub ax, [b] ;отнимаем из а б
- mov cx, $03 ;сохраняем 3 в сх
- mul cx ;умножаем ах на сх, при этом значение старшего байта не важно, весь результат вместится в ах
- mov bx, ax ;временно переносим 3(а-б) в бх, потому что снова надо будет умножать
- mov ax, [c] ;с в ах
- mov cx, $02 ;2 в сх
- mul cx ;с * 2
- ;кстати верхние четыре строки можно заменить на:
- ;mov bx, [c]
- ;shl bx, 1
- ;тем самым можно временно не сохранять 3(а-б) в бх а сразу умножить с на два в бх с помощью сдвига, дальше код идентичен
- add ax, bx ;складываем 3(а-б) и 2с сохраняя в ах
- mov bx, [d] ;д в бх
- sub bx, $01 ;отнимает 1 от д
- div bx ;делаем 3(а-б)+2с на д-1, ответ снова же влазит в ах
- add ax, '0' ;так как ответ из одного символа прибавляем КОД символа ноль в аскии, тем самым получим КОД ответа в аскии
- mov dx, ax ;сохраняем ответ в дх для вывода
- mov ah, $02 ;функция вывода символа
- int 21h ;вывод
- mov dx, $0d0a ;в аh уже функция вывода символа, дублировать строку не надо поэтому заносим в дх перенос строки
- int 21h ;переносим строку
- mov ah, $09 ;вывод ендСтр
- mov dx, endStr
- int 21h
- mov ah, $08 ;функция 8 ожидает ввод одного символа со стандартного устройства ввода (клава) и сохраняет его в ал
- int 21h ;так как дальше мы ничего с ним не делаем, программа сразу прерывается, но как бы "нажмите что нибудь чтобы закрыть"
- ret ;обычный return без параметра - возвращает управление операционной системе, чтобы все было чики пуки
- taskStr db "This program finds result of (3(a-b)+2c)/(d-1)$"
- taskStr2 db "Where a=4, b=2, c=3, d=5$"
- resStr db "Result is equal to $"
- endStr db "Press any key to exit...$"
- a dw $04
- b dw $02
- c dw $03
- d dw $05
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement