Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;ïðèìåð ïðîãðàììû âû÷èñëåíèÿ âûðàæåíèÿ y=(a+b*c)/d) íà àññåìáëåðå
- org 100h ;óñòàíàâëèâàåì àäðåñ íà÷àëà ïðîãðàììû
- start:
- mov ah, $09 ;âûâîäèì â êîíñîëü òåêñò
- mov dx, name_prog
- int 21h
- mov ah, $02 ;ïåðåâîä êóðñîðà íà ñëåäóþùóþ ñòðî÷êó
- mov dx, 0x0D0A
- int 21h
- mov ah, $09 ;âûâîäèì â êîíñîëü òåêñò
- mov dx, str2
- int 21h
- mov ah, $02 ;ïåðåâîä êóðñîðà íà ñëåäóþùóþ ñòðî÷êó
- mov dx, 0x0D0A
- int 21h
- mov ah, $09 ; âûâîäèì â êîíñîëü òåêñò
- mov dx, result_is
- int 21h
- mov ax, $03 ; ãðóçèì a â AX
- mov cx, $02 ; ãðóçèì b â CX
- sub ax, cx ; ax = a - b
- mov bx, $03 ;
- mul ax ; bx=(a-b)*3
- mov ax, bx ; ðåçóëüòàò â ax = 3
- mov bx, ax ; ðåçóëüòàò â bx
- mov ax, $04 ; c = 4
- mov cx, $02 ; 2
- mul cx ; ax= 2*c = 8
- mov cx, bx
- add ax, cx; 3+8
- mov cx, $02
- sub cx, $01 ;cx = b - 1 = 1
- mov ax, cx
- div ax ; ax = ((a-b)*3+2*c)/(d - 1)
- mov [res], ax;ñîõðàí¤åì ðåçóëüòàò (ìëàäøóþ ÷àñòü) â ÿ¾ res
- mov ax, [res];ãðóçèì çíà÷åíèå èç ÿ¾ res â àêê. AX
- add ax, '0' ;ïåðåâîä â ASCII êîä
- mov bx,ax ;ïåðåñûëêà èç ax â bx ðåçóëüòàòà ðàñ÷¸òà, ò.ê. ðã ah íóæåí íàì äàëåå äëÿ âûâîäà â êîíñîëü
- mov ah, $02 ;âûâîä â êîíñîëü ðåçóëüòàòà
- mov dx,bx
- int 21h
- mov ah,$08 ;îæèäàíèå íàæàòèÿ ëþáîé êëàâèøè
- int 21h
- ret
- name_prog db "This program calculates ((a-b)*3+2*c)/(d-1)$"
- str2 db "where a=3, b=2, c=4, d=2$"
- result_is db "result is equal to $"
- a dw 1h
- c dw 4h
- d dw 2h
- res dw 0h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement