1 global PrintValue 2 section .note.GNU-stack 3 section .text 4 PrintValue: 5 push rbx 6 mov rax,0 7 mov rdx,0 8 mov bx,2 ; bx :=x 9 10 ; 2z^2 11 mov ax,4 ; ax := z 12 mul ax ; ax := z*z 13 add ax,ax ; ax:=2*z^2 14 mov cx,ax ; cx:=2z^2 15 16 ; y^2 17 mov ax,3 ; ax :=y 18 mul ax ; ax:=y*y 19 20 ; (y^2+2z^2) 21 add ax,cx ; ax:= y^2+2z^2 22 mov cx,ax ; cx:= (y^2+2z^2) 23 24 ; 13x 25 mov ax,13 ; ax:=13 26 mul bx ; ax:=13*x 27 28 ; 13x*(y^2 + 2z^2) 29 mul cx ; ax:= первая часть выр-я 30 push ax 31 32 33 ; знаменатель 2-й части 34 ; 3y^2 35 mov ax, 3 36 mul ax 37 mov cx, 3 38 mul cx ; ax:= ax*cx = 9*3 = 27 39 mov cx,ax ; cx:= 27 40 41 ; 5x 42 mov ax, 5 43 mul bx ; ax:=5*2=10 44 45 ; 5x+3y^2 46 add cx, ax ; cx:=27+10=37 47 push cx 48 49 ; числитель 2-й части 50 ; (x+2y) 51 mov ax, 3 ; ax:=y 52 mov cx, 2 ; cx:=2 53 mul cx ; ax:=2*y 54 add ax, bx ; ax:=2y+x (8) 55 56 ; (x+2y)^2 57 mul ax ;ax:=8*8 58 59 ; 23*(x+2y)^2 60 mov cx, 23 ; cx:=23 61 mul cx ; ax:=64*23 62 mov cx, ax 63 64 ;5z^2 65 mov ax, 4 ; ax:=z (4) 66 mul ax ; ax:= z^2 67 mov bx, 5 ; bx:=5 68 mul bx ; ax:=16*5 69 70 ; 1ч + 2ч числителя 71 add ax, cx ; ax:= 80+1472 72 ; делим числитель на знаменатель 73 pop cx 74 mov rdx, 0 75 div cx ; ax:=(dx:ax) / cx 76 pop cx 77 add ax, cx ; прибавим 1 часть ax:=41+1066=1107 78 push ax 79 80 81 ; 3-я часть выражения 82 ; 4x 83 mov bx, 2 ; bx:=x 84 mov ax, 4 ; ax:=4 85 mul bx ; ax:=4*x 86 mov cx, ax ; cx:=4x 87 88 mov ax, 3 89 mul ax 90 mul cx ; 91 mov cx,4 ;cx:=72*4 92 mul cx ; ax:= 72*4 93 94 pop cx 95 sub cx, ax ; cx:=1107-288=819 96 mov rax, 0 97 mov ax, cx 98 pop rbx 99 ret