Advertisement
Eugene0091

FASM

Feb 23rd, 2020
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;ïðèìåð ïðîãðàììû âû÷èñëåíèÿ âûðàæåíèÿ y=(a+b*c)/d) íà àññåìáëåðå
  2.                 org 100h ;óñòàíàâëèâàåì àäðåñ íà÷àëà ïðîãðàììû
  3. start:
  4.                 mov ah, $09 ;âûâîäèì â êîíñîëü òåêñò
  5.                 mov dx, name_prog
  6.                 int 21h
  7.  
  8.                 mov ah, $02 ;ïåðåâîä êóðñîðà íà ñëåäóþùóþ ñòðî÷êó
  9.                 mov dx, 0x0D0A
  10.                 int 21h
  11.  
  12.                 mov ah, $09 ;âûâîäèì â êîíñîëü òåêñò
  13.                 mov dx, str2
  14.                 int 21h
  15.  
  16.                 mov ah, $02 ;ïåðåâîä êóðñîðà íà ñëåäóþùóþ ñòðî÷êó
  17.                 mov dx,  0x0D0A
  18.                 int 21h
  19.  
  20.                 mov ah, $09 ; âûâîäèì â êîíñîëü òåêñò
  21.                 mov dx, result_is
  22.                 int 21h
  23.  
  24.                 mov ax, $03 ; ãðóçèì a â AX
  25.                 mov cx, $02 ; ãðóçèì b â CX
  26.                 sub ax, cx ; ax = a - b
  27.                 mov bx, $03 ;
  28.                 mul ax ; bx=(a-b)*3
  29.                 mov ax, bx ; ðåçóëüòàò â ax = 3
  30.                 mov bx, ax ; ðåçóëüòàò â bx
  31.                 mov ax, $04 ; c = 4
  32.                 mov cx, $02 ; 2
  33.                 mul cx ; ax= 2*c = 8
  34.                 mov cx, bx
  35.                 add ax, cx; 3+8
  36.                 mov cx, $02
  37.                 sub cx, $01 ;cx = b - 1 = 1
  38.                 mov ax, cx
  39.                 div ax  ; ax = ((a-b)*3+2*c)/(d - 1)
  40.  
  41.                 mov [res], ax;ñîõðàí¤åì ðåçóëüòàò (ìëàäøóþ ÷àñòü) â ÿ¾ res
  42.  
  43.                 mov ax, [res];ãðóçèì çíà÷åíèå èç ÿ¾ res â àêê. AX
  44.                 add ax, '0'  ;ïåðåâîä â ASCII êîä
  45.  
  46.                 mov bx,ax ;ïåðåñûëêà èç ax â bx ðåçóëüòàòà ðàñ÷¸òà, ò.ê. ðã ah íóæåí íàì äàëåå äëÿ âûâîäà â êîíñîëü
  47.  
  48.                 mov ah, $02  ;âûâîä â êîíñîëü ðåçóëüòàòà
  49.                 mov dx,bx
  50.                 int 21h
  51.  
  52.                 mov ah,$08 ;îæèäàíèå íàæàòèÿ ëþáîé êëàâèøè
  53.                 int 21h
  54.                 ret
  55.  
  56. name_prog       db "This program calculates ((a-b)*3+2*c)/(d-1)$"
  57. str2            db "where a=3, b=2, c=4, d=2$"
  58. result_is       db "result is equal to $"
  59. a               dw 1h
  60. c               dw 4h
  61. d               dw 2h
  62. res             dw 0h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement