From 08ef8fe8d8ec9fac7e12752b6f61ace71163a900 Mon Sep 17 00:00:00 2001 From: kekeandzeyu Date: Sun, 20 Oct 2024 14:20:11 +0800 Subject: [PATCH] add more notes in computer architecture --- Writerside/images_architecture/a6-4-1.png | Bin 0 -> 46374 bytes Writerside/topics/Computer-Architecture.topic | 201 +++++++++++++++++- 2 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 Writerside/images_architecture/a6-4-1.png diff --git a/Writerside/images_architecture/a6-4-1.png b/Writerside/images_architecture/a6-4-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f38848846ac82acfd3d9a550ed0f68a707615e09 GIT binary patch literal 46374 zcmeFZeLR!>|2KX}rCU;+oh5grdpS$a6)}{es1&EWxh+LD_tMzR)>&sd%S}o`SS2Ag ziD4K@5n-y?Vi>s@W?PzV*^KMh*7^N@uj~3<-@mTk@B00I-_P-Ql)aDReZ24Auh;wa zd_7;s-)GO*tzMzE0sw&3Cr=!60)Q2E0I;}s*;4S%*Fu9|z&|QcPIgBDVyE^5m{=Tm z+T4BG~+G3yB$H9=$c3NNe*R=NVqaulrxu6RCE<{n{>lc9~yFc=m zSKzl~K{D$L{!m`HH8%`Y{w;C#e{aI4AznJG1za8xqGWN=+=Y2DR@s*EVb;PdpX$cY zHk8+G_^mbdpEdy2yWadO0gk~O)~D3%({=Yw`j4r9o1vF$hfchD6ZU6hggf$|5!2r@ zbmE`ifPNaIloek;_9W8km$R*J{raDjW<$l;1*w&luL?k!lUgmvW+$^5fk5?`@Jfgq z2RVZL3w*nAMO@@a(`-~L^0yTQl3V zPj0~eHkw&t4gij9DsE9D(#KHV%#04sL)z!O(fQa*qie56C(K8Ra#Zt$`SDt}NlQ0U zp__rp>6)6#Y)8?I^eC9$Z^@ffjh)-Xr|3G8b;*eYI{s$42#_t0m?2TCW^Y83!@eg; z+&w#~mGQpI!2BiFrr%#jszz=eePzi}_g`k$oE8+})-tVOx%*M_LsA~kL`1oc}26%`H1vC!+n?%o!j8dx&Wxa>{pw#_nM)i8Wb zy5zC$!Y`(cETIK08n>z|866Boj|X7^dyfa zf=+FwL{vCh!gWk>?5sy(M-C%~Kdb5=RwDz{VaNDfrs^4=&0BJH(M*a#C5>?=T2T_> zP3kp*mTR$2MeS#wP62$ztSYITU;0r4m=B`8&QY}i0?H^mxElJ;bEQlQI2izN`LyZ1 zpx`I<>96bQT$anHL)h?3goA~JdfM1%+AFOdsw-x1kJENR_|+U2x=!w{ zKJRfeQ&%X#gcAaV!tlpJE}G}o5B&}z~bZ!YFksH z`ghVjb0X~Z31G5j-O?U)v8d%x5lhV)isbPD&C$MJomsVG^)1n1@dr5?;A_@~Z&Lqw zxVG=nmW^b%UchSG6~T+<@_!%CK;u?fd-7TVtXrh-m3WP)g zF`T8n75Q275MK2d0H97{SZFr%g}4eV7H9-_)F08m4AgE;?CZ5cr@?=roeDyd?v5Wq z(gFS3Sqb$mmD)R0X~Wd3V-6Ud-g^EIP+pf6IQNF9{L{3RrM^z5wlIop{f>+ja?{M{EXft9BeK_HPnP7+f@4#TI3ChYAn z-RI_C&1BQLRcYn*CMo_m%E{7$c7}}Q7AM;q9HhrHEFgdqp_nW4L`b-9}*9H~8l5QWUKnmrDLJ<^JD`^2Wrr_YpL z`E7tiEQZPI?j1-@MYu=l!U-O&al!V@_dbKwi|?A;?2*)G6_XD(>`xd#cTqNxu zfs{Gk8n9mXYgWale>JkXV`n0B;(gBeYrV>azpvmPMy;u2<~o0`>(60_5_7R4KC*PS zl^)triKwbVbn|w)G4{-gwPdW`!jGNjk`9(CvJfAAucLFRCrnj=$!}S5?bvw2((L*)QJZkY?GlQ@g8BU3gBcEf2mVsh6f$LS%sUCymu&u7kuRgFsMxp$DH z$&zR*t6BQO0OAWm-JY>G(DERuSy0qKVDfhd?k%1{-i(ir>|V%}>VAX^7uJ_g2^?jY zBSOSCuLcaTc}FXcP)7J)LO4{9RVS{BmQqF&cNUax z7t9pN%%dz(@htD8OO^AsfB0+Q37^rmj_x0JP6>QCD9HRyn)7MoWDxQoo5a~tfQS2) zWRt#2ZNQQ7TQXmA@bmN?QbUFs5a2SrMs%w9>LH`v&>ohfeW}^gQWC-RW;!PHqo}Nd z&b2#-IOS=MWWM;gl*8mab~UQ2LefJCh>jQZAISpu7q*-6!PhE=^Zs(hV6!Od@D4T_ z9mu8EYyfKlW_DTqCn6AeqPdF8_aPNN;xKNpnY=*PZQ8T?WEDzx`{DYJvfK4M zfMhyV8<0HK6{#~|1$oiE)6Te*F73mNXhfYhV!}N6W<6}|vzcybGIa_(_5i>x1MQP0 zl%uiC=&eft418Oomi9oUiS%_?&_eRHrs2F}aJ@*0q-Y;fLM99PG)2?#=tge}FNztB z^1fqS!mpbWSkWe+nqySyPI-B@n#m)116wHB9PYLE=1<;#nkHpG-1KLv$&3mPLQ#9a zRrk+y?K8d|?^X%YJ|)oNdBgpBhVQvyylT`vJDtY0M<#q>>{0FBeBOU_!08L<|@1m7E8NI7U%>VI4r{T8;y|%3+c*nV%-drcz7QFV3aH`3&VP}C=aYwX;}> zC*cROPb&mYJ!g+5%S!qK_>dAK(n68UC^IEJBn(!;Ld#$x!WExVFJay#0xi6|VF0q` zWKc(b`)m#>x$e0rwm!SQR&UPvErz&*ez*Kge1byvHtw{uJjQ=~VZ?9bxoF=)z;fF~ z*2yj!Mh?>cVQa>ba4o@%9f!Q1!KgGtVf#|$-RCX7;QrZXXA$Y1ROT3w{ZLDAUw%8_ z3;Sp|h8unF@Ix|7F8Be%b;%=tyj}Q?q#Jk8N^f!0tv7E^C^FG*JiOQk51BJS{uUsO zpAUW1aL=qAlZzYaMcwSQN8F>@vws)I8i>j0c8qewXy6ix@f>s<*8nCbqH!>3IP~jl z{^v!@)cFgSp}&sRlxhh=I=+OE9_x+?ZeVhy^~ZA3%c=6ii+)o0w)3P_$LVuX-SaaL zpaLoWRxRH7@8$cz++3kA7qMYhp>0rTplCtGQuN6ngPXn8vZn zxo0QN+XB1TgV7<2T+X`PK|hsFm3u7ATAatPv=v>Nm-kgaCwxTp*lK~!^}7VsR07G} zV9Oam|F6bjtB|OB5}cD!lhL0h)MwAf)?rTD`>gE#1XXrz1YFH}sDxE4)#RcS&8=$c zb{)Hcmp5tOnr^Fc(A9a{MpTNOIEXTzw96icwuh`_VFK~0V13q@H>r2u?=)Tn6rWtZ zB{*RkuRhWsV@_^ONg^*_c8)oo<@9-Bee4-~AM@__KZkK-UGj~^&_7e(JOmJ$g(t1q|#_C5X*R(uZ3WTq2$~#wLZ@TukWk!oEuB%!- zbz)+7u3sKb)y?hIv#_HrT>caLN-@;8j+!1YeO+%HFOvub-5cpTz<9`C*Q3CL!uu*p z{0dvS$pRRzO&$reO^^gQuRYMmetGdXyT7yu=D^!-gEbo=8_8JMrz$nzn5#qrT1fz~ zUv=ojkHIth*Wv=lH4k6!IljtzndKs!-!}QfmzF~(OoymWsuuT~`b3NErEoLWIn^6H z)tRngpYiyW{)Bp}L$63-x&iIBruT-PF4m-4LL&362&=6(4c))$3iWI7TxUjIIB2(< z8%$;C?T&1~ZYYYX>8*D6{J=<|$sDzfIDbbL^8|hIr9TGzj{lrAaAAkpE)l@IkccSk z$gYVGlh`x0@8(o3T0g7r!N=^E-cVhDe)+~#DQ+wB9aA3-oyS_pT@j?Q#ySA)8oOagUtZ_Ya0&KI$M)ori+&sgEFX21>)WV4rVvtGrlFO5iP z4{DJa5Vc5YU#AXJh?J+wRjdkT@ws^UJ&(aw%rBwxZnfd72q#2IMOyUNO0+06KEVRT`1 zLp_OwKI0k{7!T_RIa#ZDJ(Xz@hnl&lT;$$wQhzUlU4FUkat|uexQ}^6hCwAXlOM-URgfh~VwA!ih;qo>YAD4jJ)rhrBn5Gm_Cf{!zrHm$iFxJl0Ivl8i1n-|1D6#iY$w z<)(Bq8}hE|#5p?|K>Ic^#*L4cW@_gnQkgA243F+fXlZ`#bWS4iEETomY#@qd4 z38}yqk2-yLe(A)%?yCB9QRziynir>2q)p~ET8&PfOgIv?8@j)w$nA9de){Ro7-y+h zl)4?&`Oa+7ZX^*+IM4IS_U3oSJr^|y<4OkRy(to8fh&w`^4z2Ob9tzJb6+vmgwFU_ zDC=i}&7dECMO|1Mf-gvB?-r+Ij?!{j>*V{?@LM1$XwTPut*GRno8h|~Kbt+~ApV+l zUB~K(&%nbsw@9zEZ&eN;d7dU6e_?(+%=AsDvrYEr`Tt!(?XQ&!-i;?szpL1)t+(@8 zV3N>k8fa?Mc(mHBx93gD-xJ<(rFJxaV#1)v*fC$^pB3TV-D^5#xkIWgp9bE#+7Ta|MGtNFL z>!@gkbMdJ5)>9Dc%_f90n0zz%9S7}ECxgDLRY}}gBb%#esT*V0giTUByVCe;Rv^4W zWzFkbs;@mXwjjiacTIEx6)M4q4;$FrE?=_Ev&1b$>v3)-ox>ZLf96u#j+j9eS5aZy z7FX_p(vO_}VF_FdtOU2=hJjwdN-{TPeGA_abLO@dx4tTs+1Vp#fWplX($9J6eFsxm zc!@TyU_5$bKj$!#Hp!YAuKVu87M}Gvl%eq**q$eF0k)3b?((8-Q3O*7VTs8wsEnXS$B%8Hj+-M zC`GdMNhwhFfxrRSMwdgohjqO_2f_%9M1P%2LX0KK5qsci^OT^W*o>ZS*=gG1m{uN; zEXTlbzbvy`WUcllm0I>)#ShME5K3Pp6?7w$%#1z`*BCM+n@G~V1o17@?NKI*_$u8@ zJY_(VWMXvhUN8oHTVi(vbz+{aA=r|X5^cSH0HR6E$ zp3!nUFl&eDx25tFc%YQ$!Ku{<3e;tp$F`nW&3l0a-rtw>PFOvaujI!NIT{mFc(3c> zI6IRHfgkv{~sYU>uB}5*gsvb6`lT2dF_f)-86z{5fH)2 z`1tzR>l3c`V5R&m&vl>dc)fe$2g?MDBHi2v-7_m<~B;_;{zh2g`^qCnCcbTMlU!`U96gAdD2{P~v4G0R-rJ&k;&y zC$m%yY$amsyj0L_CfxL)8-+io`pvFYx9xnx>ll&Qw{2!(ix!0exB_hEV^CuQw~AcC z+oUQP2^e*Yzry9pdJT9C1Fk6A0<@npT?^j2HRfxzuu@*3;#%{kBID1*?f)`~HVz}q z%2yRgs`Dwum&&_OA9I&4JNIjj^0oW(I;ueI{vSxh$|PJi0<6gIsA2{4=WZzu^T4-X z@$#kg^SZJ1Ux|N>0Ra4K4E|p}20!%?h|k^dDP>UIShJdXAaaXZE$UqfP=_!oKqE@w zBl3#`)h;63PuH;x@iKY|?nfO6x47T8Dqbz$^5M>H*J9yca?ITK0s0AIbpR0jlt{XP z=5_NT+!>7`R)SCmwhir~=T3?kgN;y81$(wDKHd36Rkv(hb5s+Y_r^va5<- zTEFmvkFQq)a2ZOc+MiLtvhWVd+VLl@rp2!2`|oQ-%jW0GMJR5L4?_hQG*R}YQTzRC z*63WU4R%GU$>gG4Wt5$W>G~3v+AhzI!vjn>=}_IT;7BJZRG#%&h`MUk^#(@`cNcrv ziwFQdq3JUfvHEiUahVS(hzfSSiSv;49qf4{%}FB!?AXVgruus@$yF$+bzQYvsS!Ij zX!SL1au9cKy~BwA}yz{ZZZvmav~pvoWyxT5f1|xy0KF ztw-DLIOIbiW}}}ARh=qg_8n}Jniu9@g+8pPBG=m0C4h?oujt;X--M0tQho&IhKK8( zcl1gc3T1g#vEJOqSZaAcEau&Dl<|6~G%~Z@C!sOMOq_O_hslqYcG(n*jVR&-F$iM| z*2%RZu9bAybnEjz)z=+UB=uAQ;dOzy8|%;QXriOQztY}FP+ zQg1DMc#6gMG9Qg4Fc+SW%pxVV6Cc^NjLQ=|u-J+y;aoYk^rKkwh87M6?{nxny%VY5oy~dvBhVS-Rc~1Mh!`G>fXeoyj)0ON%(`2KS~B|31fn-i~Q_ znp2D_axtV#9*EWmol*sG^FQ~qiFVAZo7vaN9f^?p<~M8Y$Mo5cNurnmDYHhl-VI|~ z*>eHoNf_Euz}*m{OUkH462>CKsxGd|7d+Tg;7E|ZBA0jaWsfe^^Am%R^iuKFz!wi3 z12(FKJfqtc3w0u7=IE~!z3m}AhMXE0KQ|gS3^NlJhpGS)K_E#!k{NGuY(!2*r9Dr% z{*MUEQi2Q9NNRD%$KNYLmiJ|h&C~9N=iQ|2BlMahs_3NTfl@T%Czve=+H`wzQ}tnb zco9r4OuUrR#;^LaS|6dMyf-d0C6dxY|B6awu!$j|a4NN5WNWq1RwY9Cn75fePAB|^ zV2t&Pra;@|r+}~q)Du1s4k8Is&sq%0gLsiw>8N3j9(fsnsmNw)BC5Sjj&hG}QjL_Ypx46N?I5D^;#6q;z2vYK?>8;s~u(-B^EyX1^#>BK;9I2 z=YaX3eTDQFP7gdB+ed0>`JxAklopP7vo#+8=gjXyQNoeS#I4LuIekau%nUZJf=H`cbEw{J5V$znt(V=4Y8U*5%#9?v zy;}Mx*S{u;kRDa__krXG59r|@@Q~ z2g*~-tU{y#T_<=$>|mC!XRFXo92-DjKR>>v2^C+};mFf|V8JHlZn>L2d0_QX>biY|bk#P3M`8ckA`;0!)Kbsj6Up0Ts zU9f97vgKVLN0rxfEFE0Iirdm@j{z%}XlD%$}!@2X=5s1NVzbteS?}9>z=8M`puQ=ihpX zoXVeDl51=~#0EuhQ-@>40}rzicAM0OJN|I6+b+{GOZQ->LcF@E54402KC1~=fon%; zBQ0y(vKerEMd9h_72iIf-r2u8(;Hhc>j7MtQdcSOMqLal{@~4_ToiAMYlkfF235%E3xectz;#J z04yH5KX9wgxFhu_=^|{2wz_(y!EgF??uFdpYj#;pV zCL|?W63gEp>~HTH9`vAr#Wh+fC*Pv)R?`)gO15V2iTmY;+9#mUvBRTUBu3dK?_*>n zdi8}H>F9D>=0~1em%|wyG`MWW9Tkn#zw4piS84M`rc!$kb=Kx(`T+VWme8X|0_7Rz zS^WaMtg|X5)Mxt zhLq}D(w;His-M~G+95V2NlKe1juTV>i$}_%%6_DJBVSuLl-dy+A8HjP9n-(!L!jF> z3Ue_UO!H{ric>;ZmCrEwJ3*EvpGU-tvPz>#gI?KfVKC`jxg`w*&Xj{Q*Ac%fGcqGX zK!H5-DR9H?5)(q}Wz2OWH!b*`jL&TJj_n9zfrK>9yftmRNsT+&*WiHA7srxIcNf`9 ze7|ewPJ|LhEE>9XRRBMAaOwT1lW$4f-)6KYv>erUS@qokL3&msk6MZeK|BKIKJ1KL zNs?N;`i4rG<>Y6=-jjnhgdst^N3sU5ebgCk3slEdekUwhfprEr30#q3Eg z;sJf3)AH7nXq~i5Y*l?Eu{a%6cR!CL`MQ-qH1Q@#5J;?k(eV+}-fym`jC$7pQTFU* z;}!#E@Dq`Qomg9y>%WowoX<-Rd|sAaMCUQK4NSGh&O}yp^0P|;* zE5bB^iO<~pxax#BXH$#Qrvgw8TN=>I#vt8WQj5aCEw5Y!F}NO$1y>D?a6)&Sov&TA zmh-dd{^kQ8Vt6wKZKfHHRAF$0k?_Q^NiAT|Ou3VEFTCC2*9ocOb3cM`_7EOUl{(YQ zkR6sG*hHe9jwy{BlXVeKgcNiHN@}Hk8Er^20dh z0?XEkM_NmPjdqH$-SH4L{?#rHo*}zSjn8mQf{@`&D4$0dKGCmI>R^v`WxAO~qki}7 z0NXCe;LhJS{3^RW+g|DD$^xk?j!IE_KWcnYdpq>@uBYAKyJMzK`fcF3mAps$0XWFq z&yy&CTUm5|8KA#|4?=eIpAxunc=qB>;PDPVC^woFD-Z0sb==cmUak;>VCduR3abME zei#YYDmeB;uRH!={s8$Y7x7yxXj{3~&B z67H93kXr^oDe<$X!oZQufK3iP(VM=e*_U^#5a}&mwW8-vqYlr_B2!HHcXJNdf9tWP zvK4-ipRzUlu2vg)^ZLn6zb~q8lHD$F=vVy{d?o51%`|uef^$(+Mp9aKK;xrbL)jtP zf7&*#=qq*4k$`4cibCE1K(;${ME{uz*yP*YMduZucf&csnblwmcZlSyNJ(ePkH%eY z;@zN!cdszoG6AYqF&GaHUWu)8;&y^stgL&PcB~#SqkM4e-yeX*0C(B{LM1`C_P-AP z`oHe!KgcWq=uqU?tYlgai-OnS@}GvZBK32uR(*BWmY;S2pjRPSaS3ahmGEuuQNx;)UF&5E(jgE7GC;xCHl7OCRJ{NAH${5cnICe41GGoA6zL2cV4z4_Llt{# zO-7f3%L#ltrbzE!e#BPs9Cui;zx8*WcTl7Uixg?Ut&5TrX+W$vY*-c z7Z-0C2D^TjU<;zXwzzP7QDbvQjqvOEBAlkHp!G+T=V~v&HMiwF8{w6ZvE%j1$Kj#Z;l{- z89Tuxm$mGNFX+T<<$v2Mf9!M~#Y)47*gdfNx0RODHyI&2M8G?X#8{l_FaqHXJ z`Bl4sIQD;+Ez$AiB3yl)NWR|N*+NbgzEnm327?3gT9B5q^ND?`2AsvftdnmTrITLv z@2uvHhSBpn3IZ@6+yu+)Oe1}Y)U@~|zW~qH4UP{7=XUHa$)920&w(!N_3>>vnS=hh zRIsj_fsBEE8wUVaTPZeZQF}>*Nx#Uz>VKjKSBARQ0KEc~Csh~Kt7pB+NK`IWh?90D zE}`3upR=e^%f6AV|36TX_iKRS<1tw)!A3m;bW>M~H%e7+6|v{9?vrn?pMa`0u*fWS z@z$YDwo_5!4K#VRKaUB6N9In3JoyD^i&-uA8@k^Cb#d1p9pA3$g9q%pd&KMnqaPw} zY7_N0`AhqA6{>pgnPqB&{7BxNqM??)yU);qat|!{6gLfy3T`OU>aQihu3^ZpgM545 z9bP^)05oKN9&mpD{Pq5UI0@*z{C0Yhx(azTbWxO9Q#CI)EJX6Jc=BJa|_N6Mn40$F3xzLVD*+CK!PGbL^iFoz4d@eMCoBNWACJ4HJ z;N5+<^JpJGTCxZXtAYmjU@ndP&+LQj>J1Hks2v>jV{V)^#DonPXk|~0ER!@D_+i@4 zqx2IZc^na9nEd1t-m?M|TplewN7MRD@9eLHSG?|pGa3s-xvqhvW@(UR6z%fxeWSZq z<0`sd@Ex6Mms*kn3E*4+xpD)faF4KY;`7kOVw(?+u7~vz{fwP@8;GV=#T7mFH&EWO zs|@MBH?k(4G+Ts(&~o`3LJm}EBIeVyij6xra6UghJ$CRyN4K2G&{!^4wI3!iFQeyZ znc|j775`5HyCzLr`m*SkzsUxaYgLG6}TR&aR#{Hm?VC-?8xMYPp=AdV8!(UW~eo4}%R z#y1R3iZ~4L2-p0@a(ch;2sDqOGuYOia0yEXKapf-c)7OAu);gnAa&0d55k$c~N~F^Lp5`krH0~H%Cn|IcwY? zI#(7dSBWv~`v$6;f4N(W;2=BdSwZ{Qu@Ff%v$;pi7+16Yo7S{K?PzpGZp+Tn&oBJ< zagiyi{W}@X>i;tz*#1xBlAzKQnpUf9zQC;0F)7wQByR*}G9}REXTE1uDcQjCwRRxM zh{ibZ1r)ip_L8xNn@hKTFzbV3+z)$>Zxs)QRr2v3t?mIEvCkkedk{bDcwX%y*l3*8 z0JAkAm@ndyrnf%+rQQyjjHw`%#R)&K)h+Lw{ObvuNJT|8;I58hJuEDnE|Jd{U_SKz zG3w?FZ(}!=#u2U1r)MRAfikyt3L9UJZgDx8u?Jj~klYQu7ebNZKh8i|lysZPsDEh0 zK6(C}vU*-?th~_Df}6ZD1u3==4C*=mbm?qli^~BGOUT-o+a4OkN}F1l%I1U;MES!f z#0}zOVvmEQf$KTl_q9IA>C2vh@IrM36%LmLvXFntx!}amlXJ0_7 zsJxTkEdILy8$Vk!HD^M;XtXe(AyR!3XV!j2qd25tC;8CyHh4~lR2GI^WAlNuH^_55 zG;w&q5`+&yO?Sfd-V5RzH1c|?r!+9diSTFEZZ2`dTG?2q7T`4z@x@)Lr9S$YK!ZxT zcP+lFphn7!522+2c~!hhQy(O_L0sZw>vgx5+b^8TEAhD89?exUCT$LL<)@j%E@NM2RD{MR0)1<$T^^w5)=A7l^gc}P zy~b?3=A@GR3h3n&*ttcU#_;zgtikQd zOppzTxGMXv4~Vz(dvfz;g!d)N=EFd4bnye#YbK`2l#9Bye;vcXw!f_DRr8@}OyQ=t z@{nRt#%qOoT|EcUZzyYx;hkl{RWB*$^r-yITBcVvB@Zu82GT{bD` zCsLzYS-foGoP83eN@BS$NO}euL6w4QB2C%!TpQDS&m*mjrbG1=VIvH*E&z+lSbxa+ zIJ%hL(T~9k=E9=VK6TbxIkOLorGcr33yPEOkVtVUcWV~TN7YsFH74Do@obT2e|wm3 zo|1u_4DunLjZhDlUZhVa@!V#j)qXr1eZoyutu{quTy%{aK{D`X!?Y^zolZbkf$gHyDK%$^ zUYAqrmZ0M6-Z&SMoE6=CwX&YMP}*ICc8q210V&I;g&&)HV8IIw8#wi43JW#(hQVwh z^29zi3a$VB%&u2g;*8jrZu*U^!T@9R$!{wHQk{n#nHu@S9kIFBgKwQ@iXpsIGj27u zq{udBfAf@*2OUByRG9C(wrIEho_wvPxW#)B4&Zi#zl@1qR;Bm$aLKTDaaP83Becqq z9A$C=+w)nRVFj;oc7&G^LgKBU0S7#>KMKqdG&shgH)&&H-`LP+{~hH*kRJiyOm7&( zW_w&uUGxYDg6Y80b=Mw#e~06FI*snIzQ|wC%ucE`YPq#-lN-$pj5C6!3n+G)Hm8le zJHmK#Rjy9!@U-ANR-)L`napfH)V`lh=7z%iZIb;BC+tqUG4%QykPvoBfTw&jmvDs+ zTREEcmLbz;f@nXkv}}Ny~5M3OKhWSu@e$>o_gv2zTq~zvD_4%)k8hhH^_YVnKhr}6tbWdwysI%HOWjCth z*)H$v+4ZA7{%>pAFMzC4{{^m~S{hdwo4hxgDD#nzYs^mV*)`-XW zlJ8GO3>vg{4 z40)BP8PN(2#i8KKILI=)wXPq|UhHse&YpHYs1m@wyZ%CJ|7WH+rCOssW*IO3y>k)f z7FBVk0(fhapVg$EZ-B1p`F?-vUz=3wA5E``y7;*D3GXnB&}|Rd|FpE2o4ONYe^>e| z8AWTqx|(!yCEPFx)7eIohkrE+mf2Za)AqBBm-QT8(*wH$S^IS{{I=FoIA;IYU{ci)G;PJh;PY(7po_w`;dr z&8TmxSJQUZGdQNMot)*2b0Vo{!n9pOLJlwXWVDmIoj=U8Ld+rA)!sWtHIEP?j%BUu z6s{1{U*x+&%$#$?Qw}^5Y9?d^7R=C%m34P#S#i#~@w`MC(o_!fY5mjrmg`_ufF?*` zKK9qc&EvJ6Ybm7+2aexGZtSfZ^}Ab1^LDyjCA&s}LUHz(wtfB#p?M1<$E><$zJJ!6 zB6BL@py&fTFwp&th_YRxOPLCoLr*^3ydT4-foGkqQS2 zhJ}by?+<08GtqB*?a~gj;~V6R$U2a(4h+4Q!qg1FZFSW2-p+N&&(b$(tZ#jYx+@AX zD(#Jd>CiGhuZ0pHp^`dQaEMp&`9j@uj%9J4)E>qGwh!gpqlqbj`;_3IlQf`#cK?4U z8I4+EaOj_s7bk1`G^f5wM>34r`aT`|AJN6N#Uk!*So2 zqO_iO+C{=wZlGA9-c#shSTm}*vt+K=w}vp|Kvu-b0JuW!7{Ow~BIifxA*vHfMLoFu zhC${hj}!bU>{8&;O!H^)zb<6%I>|~ zFm&Qg?FwVjvMrJupg$gky7|jrTRk!*OK_HTV+t7Rr0Icb*C%ypSKXE^PG4#esKW)2+A6E}2NEHdqegB+I_)6kmUAJUSuOiNjJ^YSGfLAYkE3 zJIQ))BS`~+G+^%BtAxleVf%A2>LuHRxueL3VA~qOLvcc(PTB{fM;ne%*0Ur%<|Wm; z$pL&0X87vsJx&PLH65Ul?D~2)zrjyeWcG4}0<3Tr%)h;jZ(Q1&FLz`fkQD303ePbEcu6`dxX{z`=_Hgn(I$P>BWp-{q?K%$2Uu#w6Ei7XaBCB)#CxU64*G{NB&fL!S* z_PBetW6>g9Y>f9(AOkeM!F!EO!D`WF8p@~g*dg%N^|Tv0OSY+urK9ko0&A7QdK$yo z%1#AHlsomo=iAlLiu@%?m;T_E#o8)gBf{j0##EUF0AA1D?*-1LfC0e3%cY9iacYGT zyV!n;s&FnpKiZI=vML5@u>n|RWfWE@i$bLwaIjV-s!_D|IvB4Mp)d@za60pf$Vox;fex}U2C>P z1MVpdke)N|(-22L1QvM8NC<$$$n29vcz`UK4e@1PkKK|l&Ad7-Af`e;;V8zBoV(m9R!|_ZMi1Uv(skpTqo_!mMJDPi>}tL4X3sYM;`>d*1(lVKcD=`$Z}Si@MBXfmoO%OAstoI=tk zdD-5r6V9Cax(}I5mv#%5+0#UWKkrHHZ*QU#y1!gSHfKa(_iSnjmhO17aUefAh-Ml& z7AGPv1#bPMh8&V^Srb*`e8@mu6iLi9EJ!Jz@n^iUs&$q1G6~R|;`z!@tK)FJ%1Y0Y zAdcljxG^0`Xs)mFJaE%IDt+sJLZr6a2BDAKPvvw)dIj1yXMJj+^xvC4_Gn>~D4Gy~ zfiZgh+b8&|1S^4W>y<1pz=mYnWn}DNb(JFd{Qa;|uch3<&o-ojH4Eh=XVQ7Ivxr6};5B+AWaU6!kM+w-#Eb6!C?ho7Ql zKQ>dck7>|ipU^~*PCl;7mLw5IEmGW@xLKO;oo%L1UmXmwi14vXCJRYi5E6hXH=^II zY@4p)$A1JphMPE8*?V~xyIEy4!Cx;D)}~*6{b1Md-<7}3U23qZw+e8Ap#z6|b+^;7 zzJxLJw!`UkV*m(IGA$S1LsiE_#~k`Rf|u_m|BH9TW;6r}i7TBOYZ5??rv_ za>AC=M5oXtmwauzn|~uwl^%pwR5L^dGrj{7{E?b{5D8)a=23e3WCP;E1UhLxy}i4N zlin#iWHua379pF{YhBMZYkKp%(mPr4Ik^J7N#(tGFeczrZ!Ur8Nq2!WNn;n&qlx5Z zGX|be2>?&OD`R+$%vg3kBi?K3(>7pGge14(iCgIXk+RUO#GVIzkp8i8c&<}D`;lz6 z#mc8A9FemP8b2kcb~qodH2sBraXnPpfY(G~1=K@SF~b9E*%9 zppv?Y*TVu}pS?>F-7vw1sEwDj$&rXlH^kE^?!~&Oq+(HYB;s;Dq{!$J5#CPij)oJC zlyZXM43JhQo*hvrrsogQkNey9%G{50Y*^ju570ul9J+uucoe?6KL_74hU7TjfTSEq z?%yN+T|5v0r(&MToVWJ=z}JI;G>*z;zs9;$|HC1&+GjGRr#DQ~BIAjkQS%bYF@o>; z+kAM3V@j;9OCG6Z!zFFUyXCHi9bwdnq^w_smMOYo3(jhA2o%Z>(CdittJX>5rKH*l zhhzHt)Ht^zW3a9di{zwl-E}i6TZ@F2gHr?J@pAIDQl0EAreB-zE}u~yB&JE-xz?@Y zIQtJAv9@Pg1Q4yw!auh}wNXm5g~)%r1OL2u=Y!drU?bAL+AK_)nKlNTAE3~%P4=s4wY02-hxd{|x7} zN}krWOp%av`_zD#=OEQHJ6;~tFQPK8LjZAyjkCoNvS-g%>S z71g5m)3o*A?0@txP3}T_K}sL?(%U(yCVB*6MuE>T!3^YbgYoGIC94HD3D*q>RZEci zKl6})Q3K`e>l3F&e+)3CVE|ySlx;5)KQ(>qRckAsxz0Xo-u~3Z=tV@XJvS=9!d4_M zE=uXi5zhYDbxC6p@Kza^^73(k-q(KUV#1~L_{P+%8&}TxIR1ss=;+UCkF94=tVH7H z+oK}cWD`>nb~FM2&MHGTfYUR};O&v)u~m9z)L(HPZZwi}gKQ>)lZK%Aw4_Hzi03Wt z>>7@_UC7B-mpV|aLJ{S?l3;&x5a`c&sKuZLHTf(8#+95}{g*Q9mt(5C+#-Jr?AZ^@ z<%@Nhpv#K3795%@$oZ1j<%A#eb0t2W^fLT;&=IcGRDQ8oi3)kt-5&LlH2n)A*50@NNG{5tWvTB+u z2G4KswTd`xeTO^WTqe#3bDKV=%62W^+(+j1v!hs55cd!ajUV-(oBPZ8KvPud~O;vAhG*VcB5{de|hfviYHs`LJ@ZbR67CBXaK6!YVU0 zv=QQ|trfBN2YsPWwbMLAIN7qJiULwMd`V>v+(0;*?}}LHtm!@&xtibJ)EzCSwTp5i z$7XpO?dda22%q*o;BCx7G9v_&15V4IwGezUqmMyM(j}#%l6oc&1%^6F243xOW`{l( z4s^SVdl5?jYaN9!kw^S(u=;A%v{!g`xY4*O$-KU!Wv}duaEe+>s|oT>C?;7&b|goR z<#lVPWZ&uKxWMEa56n&>o9AXWM?Sy0I^}?1VAB&eN|-JE7@c8Gr_Fb|HnPiRv2S|GAr*@aYaz5K7F_KOo4h!5PC7`%0>3~HA zyu-V}X|M2~K{n8Kg%x0ZQ0*%~)ttz+8g{pr$oG|>&m_7x`^6UUOJqMKa(kj$VV>pb zOX=kI+yt9%F)-ppu<&WT|LqDQ(>-7lH7EYqrj~Wba`2kNC^$i=Ep{G@+01t4EC&Wp zD)sw@HPenHl4atl5NvvU9W$3v6J`f375-r~7DJDAZU{;G4>b7XaTxV;Ve}UwbGVm6 zG%5EH%q`Aqo}H1?$(5{Y+*XLX7^b}@G-RyO+`+1|Vw_p4%NX28n!Hf{rlyEB4Nu@8 z=--IP9~Iep)xLw|B^uOhh&uS;aK%*9s^Le+i-pAQQ2WhB68sCgY0B1lJCOI5S{L7- zqAgaJd(NuUP+z{<&HZqKKSAn@XfO2<5}IFMNSda8N-+V?GPTT>;(7~$ER2hR7hi$$ zlQ9fbGV4LIxILI-b+j|CQk$9+jo~v^ah%G}q@Wmoq(vNai&|)Z<|^yf9bP5Q$bz>E z3XC6CzsRBlqxiQwv(kF`=fveR!--8_Oo{XZ zUnNB>sT2DpW3Hd#+gYs!lH{4;I^_yG_q2Ld#j zDwQM9c-9iL63h>J=;d?>kox{W67+{jf`+qX%()84I629A!Pp1j%9K+M;I_nFklUeM z|1gHTx;NZj4@UTaM^lvSyT<_dV?P8-TnSWvlFE)!{qn@7K>J(jI7pEH=WDpu2VTn$ z7Vc{{FMZ-% zVpppI8UJ>_45e@LcrorltPXe=RPURA=XZfG`d#?<&o|86l?-f45QC>*z&b>!M*!f2 ztKs`i zE`;6`B}hq>5+L*wAxMA-p@;IVB*?k%=X#&-$9G-dyMHK?z4j_Ivu4ejH8ZRCA~tI{ zg=f$0-+0o7>R>KGEf!msw(YFD!kwK^{D1mcpBSEEKF#Z7PcOX~0+nv2<;}HfL+U?U zxHFwS%W6$HqGa%B_2*q|7<#^)W0UE+qsTsL2I4@71D8Ik{fz^&ll-xN<~ekk13Mn$ zz`n{KI6hCDB!xglaP$Ki{n$^fH&@s~yipt&n&rCEf4p-N6a%`1Bu5_B9^@D0z|a^s zRN>DpHtZuN2&&+yGT}D`f9JyMp8lJ*SaD%>uIK*;LDlv5+(?1Xf)?xFbKmp)iWC4D z2Z4MHzbk0Qeb4PqKEEWl`Drfv+Z{PByvhx6;@cC%v8h29xC^$>&X-(xfh(#7jx7js zy8G}~RF4K*RD#2L;DHPNyQ~dysdSL*jePmC8y6k~`JKUg5Gldg-T^lYE-dGCk^MOo zKF`J9Z@lY7>y*-hn{oTbe!m|OUAve-otkC)`$Iv)ySC-?k-*;~Eq?GxZp=IT1r(mK zZb;-nm)1>)9N@nh=a;l+zq0(bu&{yry&P6x{|N{z$LS{*Smz=x5T2nCx;i~820hl0 zipjI+TwP^_IplG^vDXS+o}C?grl(lD!#QnVkOAP%%r4|KHKg~^|Ju3#!orW; zxEmT$PsO=C2mfkszf$)|?t>l(K>qbS7tqQ|`5_n@`tN~XI7U$K=!5NATQ72X2o$Y_ z-;voPsQxd!@a(S4rY#$U3RmC8YltxP9qLWiF-2R@R-qu|k?Lzp4kp^9U&5ec!rT&Xh?;>QRV+fsD z_&Ywgq83#fx@y+N0;r8rx{@U0DzsZ_h+z0HN__JOq{hFi+kJ3*W%&~<8kN=Obh@uc&C9QQ5AAL zrMbp4m`q}a;e>;HEl2eYdX?|t}JeX#?&${T!5wK?_7;$^r=_;-T zUgBQcTPWU8=@XJ6^p-#y!h@jM$xA@}bgyj+#8LSkpziOb0yC`Z-x|0GkWf5$Bmy zZ9bz%-eC?ri!P=)emx2{l2X zPKJc<#_=^DpX)-~##pdM8j=roy!c*~RwRr19nebFr*kpoMRcv0v(_?FXtv+%45WB~ zwry5|=1BbPsGuY@_GK~eI%?@#IU}c~KeX$M;IRyYDA7MHBVENID$_xxhQ{1R?m!F#j$7J{ zyS@S8FcLV_S43nSQ>q?#wzNC-ivB&@;O#A>Cy>KunI%x^GHQ{hiu--P3U7__+NZ{5 zuL#k*d%is~&`l9Rl_aRRrSK{~q23_T4rFK1Rwpb$lDigU^RsI_P|i|_Eh13?Tmy$e*HJ>x^TmEM9)AbfAGV@%^hDpM>^3xA)aHe} zGGhhDruPst{moj?&l4k*>4l^O)Rp=J z$}uD5npEP2Y`wtg1*-(_<11grlE*O1Gd>=YRZCMRGKler_@0<#C7}>OybK%{@6y zo_xW}5x>kgG4?e6yxCXr`+A6WOJ}22pEx9Ly%JP={XKdGQc_8TY zumu4#B6${>0VD057+fyMR3yo4ST-R?KbgEyAPw@_`x&@j+S!)+Sg53ZPQoL)&1^+s zM5crkK}H^S>#J{_&YKZQud{L>QXZ)bs4T^|jdab86y=da+~5p6CHTl|X*AKP#qX_( zD~!79`^=FHFc!w44B>P?psmi-BQ%to{|?|Am*vP7;i*DOAsvfCyh@Ve4Pdm8^_YUqN0WbkN}Z`R zo$lAUEUGdFi=A6E%1TCi6i+=d_X;DY;|{(_{h9iBE^cmOY=yB}RYWvAU#8NOYuEq6 ztSrs8BaX>Xp-4BrH6|8{U9+!R>#KR%F3zkb563jLSV3>=T#rK!U)GoD$Wj6C>Vo-h zl7BqLPkcZY6$`Y)`X{^nNBx*icf=*|x100T?#Q zonY*3kd#MhN3IGVp+864q^001Xc9z4ha3X68HurZI$)z8W?J?N|aeanC~!i z&_yyl^yeLz%)TA0MP!9_$8eVs=`t%=-zMkg4LRz#{c-L>h@m9?usv9u1E(a0RCm6- zA``8LRKiNWNK#OR&ElfAvtiz6A%v>&BXr?%?# z?~_7`?iLE+|7<-!WEQD8J6ZR_q6$6Bcw#;wnv>Rix115rNYBqa)r zIO%_mSbWy@`CM>ER(o~3ry)@drzmCN^|nk?pVfoP(Twy$gIwV;n2X{lT1NeiQCR!Alo?OtgwjIg1o-ey0;Vm6n4SXa|sn|*>j_3c>QlVXNI(Y@PQ${ zKf%PV4frVwUoZ|i-QDCiG2WNjyX2BMkcgL}?jI(ZxX8`LY2wwt%%&5HyU%y0cXlsB~_UP1DOIpE?Ur0inO4C4yhO^ROxMN zL>Ka;M>8h+bZ+zSQgFP7PxNU$uLEA!x9cs{mth2JjU%xlmfcauvMrq6eUl23n!xs% zyjsQLqynO@&fwE}s%a{7mBaVFbo6bs@ENaC&V9i!d}ro8Z<|!%P%l#L1HL&h7V)XA zGh$hyBcIE^bYennI%vyVpbG_ciwFivBdYGL2dQZr6L|O=(x+tQ25cu>%YAUYQ{qCH zlCbYnVk)CBs@R@qo6M)gUM4P{Giv-2o`T$E5f zh~Zp(VS$KKvNL684>7%lpnAJ~?)6+2EjpT3En#ydr%C$51MFCtzz-@BhEJ{keXP>* z)M8*CDMu7KC`jWc3XOGRPuR>4Shuu!^jZ@MQ7A8s)o)oju-WF)T-m3RxV_nph~9cv z95mv)fA^Q|51akZCsRt23*O2Vul5G_v~;Tt5c+>RR5KO?K}*-kVJurI7vAD;@BzPT#Q*8+RjpG`T2s60 z%T)m7@*h7&!D)wQ$H5`^*Hr6fRx{FlermLj9J}OVZxQ=ruH}*Pjlxu;-Vm2H@>g?z za(My2?rzL&f=Sr`BE^Ayc42^YP1dA^V$)2(tM&?4U;NChi_j81estoYc>@T|>% zS}CGef9(3rsW(;xnUX#^)*s%IWJ?L^j19d&k=*%Fq{{njL`iVxo;9` z;NwN9Ae1d2x&LnknK!w+MluMnw#IQ9RQte$c#e37`9zE+i>IJo7vZSA6P{TaE>>wX zZ_`1nEw(>_)ZD4eAP>@Yu@(p$Os{F)8cD({uTPh<3nyXgE_>y9epUCa+hl&l!sI8- z9R`Kh4K_c}lNzpB>4rxq$x@RTu`HY(oSW57F#ay1prqNj*DE zSV?D3s@wNu%#?jD?G$6Sm+c5kTasEzIxZ31d1n9Qr=Y3EXOQkU`X_&a(EfT=I>lki z*|&sxTWD#(I_7S{WLAAplJX96TS8#M({|==`iZm^2`Irhk{RQ><1BThptC@5ZLN38 z&)!0BTrIwNAB|YAitfcoO5^6>J`uFe4;5=`^tJu+^Vl3oYzSLj)O$pEy^HmeNbgdP z&-VTPU_hfY-LSggltZ55_!#QycHSuWcyWEXiR(Q1C9R8$GIDmue3VeuyRu?L)3d1$ z-zJ@D%^_lKJD88H9a@yE?t=bwoy%g@`c|Lrfn5@bM96n|*t&L5m%cB;>uYSsMR2O* z7w|O7UZzjlD*Vsr(;hIoY0m1$ZC{NBOS&BQ{o%NJtOpLEbpJXlv8<`_Ki7xY8)i^*Q}#4zN3+{;q=3rgSfi z_Amw1^T{-&I$JA4ga_;t>>4I$CXtN~V>K<$0NiNrrut60Si#&>Eq(%BpDvt+q$mC+ zA$M?d%@ze-C`xXw{*Ti9)$4xPIiEtCGM}iHD>@!y1*zHH*X3iZh^}u`{$g`o_KD<( zBDDj4Bv(T@=A=ZzU*u+VI*xFHu+}~$v@+dYjQj3;)xfCWaBl*uKNhlz`I!;!TK-t6 zY0J*svwEN%qmLO$?D~6 zd`SP4iwcCoTgekAWr}Y4hnlO`ZTnEreLM8ytNC3~cl=7bK)N5qJlb0X(oStB8PN_x z(04(Q_KkGJwfeyII}XmOjtY!9rlC0N{f?0i1&PExflb>Ra&}IR^+k|pGn$7_e7JDv zJY@d;#qnmRd)SWcywHWGs3(0e4G7Bch&b%(n~b3)-{wOVt}!x4Xvuixr?~?XWzO2T zkdMhp^O!9+crB8@_c2N@c6jhL&Zrp>^Yccc>gYgN3PAErE6d<4-a4>!^B!UaoE{GE z26ym?y24vtut**bn+Emy{6E@F4CAKWlqsa3fQf?gNAdKg%Z)*OupK9NOcqc- zvvwdAW~MxDTV-TBoRJm1(!AtV=8b5a6D_!>*qMp^(%V_E6q?!^h};U@SD^>%5QFVT z=^X-5q*bj{G}Q_vZ=4?We0YU_T45J%Z>r7HGB1)yU5H28_2}!npSJBk_F`U6lJzr` zIWLTqer_8{eTkT;&VHlRavIDda_KokF}6Nq@39FHzSy+}lR$n5vAp!e_m$7SULAVD znUV=nM1l_Si$%`nlQNn`m)zUl38$KeJ>S1n5+aSVWTg$yof*cSyyLXpsV2`a>arYR z3ZYqmGDj##X1@tBnIkF74Zmu>WYE)$!2&u!sj$t+ypb{$Y>p;+E=+R^QpOdl)*pTB zti)oFMz#ItAG^wr=g8m90BxUdQ*mlZ+q_myq9qt6EmtRilf^{fXF>zLo`J(=Q?K_xEh2vfRauqXVNUCEamR z$Sl|wIrL{_tm2Ne;$0nXoo}&xkfqf)tP4ll^gPaZ?ifo;Re)yi+gVU znSkX>ubS;HR+#i7;Tb|yjHd;7XEk2=Dqg((8Ix8$T$KJgYY9_K0`dyFmRv)mP9o2d zJLr@Ueq1m!WI5{cg}56ShZdiaEYVSYFAIY{_*f9RqFN^!w%Q&a``$Gn{h2=j`$|)> zBvxhg>I>W>LopOB=#?g3?It6@*w@VPa(98(1l(0=;$7eC*x;rPj0CAYm1RwRs;-+h zmS@*r*w0K}m<^ga zqgQWR8&MNHj|LVXpoIm+nb>>(LV>J&NoCf2eY}lHSa$DONMu0pSmqHg!DBaFZLY|q zeywO|I5XWfTs+aIxwBZJz-ttaJA(C4xORfLq~tGMraE1a5%G96CVvuBatL2-Khcyz z_*z}4K$v8;-*-uS(u+@!XaC$2tcAAa37^$Si-=8r8tb2W&I_GO>v$EFuJmRT{ek-7 zmFz&ldnsOku&NhUSQ4awWUnLrar53;!*<<_;{DD|23`c_Ko~{8Ql8OQe9LT!r$TJ@ z^~dou>bf2^;(9Z`*M$@sCff|_o*yO9>ov`j7>}vs3kWBzWrARuj;0U+VL*Q08ammv z9je?)+kAv3n8C<%Dndz6jgR723g^*(>GZpmIQIwDi!9Ew^Dp(JK(tdbPqB2d%YrHR}FFBfFfJkd4+0`G` z8}oa9J-Tmp_3>HYhck5HpaZzw%CbpN*zmk~2tNH9TqbHbYgf+<(QP96TCWLytn)H8 zK+ne2#!%fZHm^Ld%^*f)&se@{XCPtO+H`81*6yga84C2fbDmhdtFMpPKWi5Z)J@6( zs+}}0S~ChOL2cC?f2O{Aa*l!c9G_^Nhg_Kw)cbhV|MsJ5mEB|%t**>WN-X+@KLrzt zqI>k!w@+hmR)%<%3RUf{>bx7;9WHmE0pDjeudXnXMF4l<2daU9b#e9j2%O|DY#LvbQ3ApU5&#zY_ACCxo zg&Xce47^`8zlL$-gL>WLP&64qW+e}8d`-gKO6W+`2aw6#>9jw#C&Cz47Fh{3EnXN!%%Z#y)!(zgzyC>kz@pNmn~rCSOqAhHil1kONBn0W z81)%b>YvXzx-8WJ1#dqg1ce6?YnGJAQT5OGcf_Pso9uW!NGlRGZY;mf8xmqN6K0`mTr()#y*U@lFAVI9m1hGB3D^I;cq)h@o7M&xL;MAYfS5?%nm;DBx z+(O$*D7hVwSRY!wpA{^Q)53nnp$At_a1BHeluL_I?_Sg=lRcPkii^aa7!8DZ` z8n?R6PI|5-CI=3`g&Qc;!(TTW*=Gg2m+5*mqnbh;;v{=kQ>jzg*Q#>rSDMY#F-4hk z5>r;=H>5hLA0H|5e7K+s!iR~I<(5v8R&Z(&ET9LS@OT6&Rx>hi){z3S@1p9cA@ktg*F0 z^lAUk?Mbc0l;KSlVZd->N)OuKZ!^7maAYMTpz^ponusx7)g19b^@P5*sCp4anb2x% zmMd|=c*N;oLe0emj*5I4UCvgm&|fs)flM=W?tG;3d$B#!txB;X9=Y(&leMWCtckQ_ z`MCq?BR4Vl+8xW;bG9a$gvsPWsZJhcJ7jY^Sy_orDtMV^MmB$E$AUjdKzsn+r)sJ# zM*>$QIFx$Z>v+|%zh86CbNqBgW1_$O-@Pq^W$<5oy zYyuI8_4~z(a4QwAyxrV)Ka0Lj1lfkdNR2UYd7qf<}N-Sg+*ey-`<>7SLx^KDEoVA6DBm|2|FU8SrJaWuO0c zC4$Z#R{1WnYOlE4QA0}e16WlUIw?4IG!A%v0M(4{39bQ;b%v+s>{ zHRqny!;wk5$({DOBP>ZI6x!4sVbV1)7&?b?+%HFvk8uo_{G=)Gt10m79N$)LcQ_}z z^i2D4wPD+R^-fxw+4nth-5}W4L4De|`?_DDF7p=*93~jspMJ+$Gq9to?=91r}osTg3~7YjBCt%i*bwqy7JH$Y`X}faQbd z;1}xD0@oLza#~P;eTsXlW^Hw#Q$Cy&y1YQAcVKWwP^a^>6)Xr(>i(-?5qnSBdwvPZ zgWPn5>@GvS`uDvZMx@;S^&SZyT3j4n{2!(2&un(y4k@gAhyX8@uk2m~5Rb5v_*8wi zFI*Z?9K7tQNG!N&FmmASk+~p$jZ;(qIxO{`_w~jWplCfZH!1%MTYOFN*~-6>au`&5 zZ}=F93wndUss6u^^tt@N&W2-T0V8%I!SzRH`U!=u_*C2Hf8oT@deTwUXE7cRZa^LT zD@V1^d%^ILy`$Xphun(((}Tutq3o)&mAtmxe>r*lFAaz^4uq{S==-viO0-YKq}AN0 zV!I#<%&_-nDX71N!4Z&8L1*?YMeUzdf`da|F3kJYCDDO8JF2Gw1app&Brtcg9WU0O zJzIEQbSmimVDad39qc*3-$qJa-TRmyT+O*r@b;LbHT$Pu$@M`wzH;SPvIn;`bF+AJ zK3ver3jfaSptkzIBiN?n>wN+pcKel2KEMCEqbn%?H8xxvs)BRfg8olL->-J?h{TVC zDLaq+->)q@H+d@^BlABzK3D4ZU({E8Tj=PxP|~UJ=QzfM?-?ZXFY?20!Xu>9&On+R z_byH!!=txY^McD=!3p^K^WTn68y<4C;Zkgu7}UurFttV%=ALzs@Vx7;N(kNRSU*h( zDt5M?!gRg@Wje=*{}0S=J@Vuv7KcMoDspv-#b<2kjh)ZVE_Tk?)`r&&~akuQF z-PKJi{wO z5s@w9$M0;?@{+eIFogbfZCX7DUW^?-5rj_2FItt^8I0C~tTD^W!@w6BxWYZ}iZJGo z;_Zt+W#4}`tmS21+(PXO=oNVpjqmw-nmJ)a)*}cp75z6fydhy!kBV$je4Wa3(djb#>dy56Chd;m583naQX8UDH)RiUlPuTY zAH2wTnVw4*wo_-fGVX?0x0_}4#-0u#$>noXO@QLzErPndl?TLU zkh{z)O|pna1}*O)-PwhJ)-jN$70mkmtlCD7h*a_rkU=!2!V>M9-mR;K!3Gt+l!o5-_ROIlHm!?2!Zb z*!+2wdKNgRal^~N=ZZIXJ^&ZN@LouvlUo`&wwWrUQzH z*W2?6=84~M#zIDou3yCTX~v2``{DY(LfSe?!td|ypS#-6BXXDYssMBt(w5>5;Mo>o zf0F88vLYXpaU;GtXC}FOnGee6-sJ^7yC3{e{@|C~Y%HWpEp*oa+zT0Ty-*#`4V@e7 zAe-nf=JbGlLZKX7Z~q4J!-qdOqma`8*_N+reQQ|Rkg@t4Fi zn1d4Fvvn6(u;3{3qG?gWBz~YVKVR=#xBP=nnC2#^imh|leiIxKg4c*WnCTEc7Bj2oP2}a%l&j?!En34scL;eacdww=2etW za|!?q%W?N)>tS66LE6~jslE!Okdo*TJMlV!=Aph-mbZ9EMe)7uU6+1@o?QiMW&Qa0@X*z!fHvoe`q)KV`$A>t z_s4A^xrj4bR{@)Q5ny<(6hAq4?#ZPaJJK~qy$b>njT()}sfVhrm6IS-^yM;z`Z2St z0{KKnvTDXVxJ8Ek$Pyl#9u<5sZ3lxgYwb;6w91e!@R&LCr$G&Z5)_-%mS#NS{D%b< z_D@$_?hiE91HMDftJt0zmwnfYPSL)@0bn1phR}H5GELF>dzv zyw=4%+MA&8B`(D+8yjETYOl6~UuD3}6~=6WtC50KQ%sb8Qw3|qg4md6HGh2NLV#wcn8ZuJcer~H-Y!k@c=60^sSwj8SF%P>8VzVF zU`ZHxXQ;$hNKe`P2mv|Bp|9~=DcTdXqeG%+)I_?RFe8`I+@+*1dTHpDR)=k5Ry5=I zN;kHTHlsCuz?G%jvLfI-UMbB8-G+H{{jx+I2p@oRMOHj|e?E*=VyL@ausyUP)!Key z>5?S42n@Iil=u_QCLXGMe0nbHj-UAtJ;MU}VONJq73mjVc|AjmDyV#EX7+Ws8c=t& zrMW{np)fbZyf2(-DpiSTShW#}G^F~01H`5+9um|kZ{(qj-rm74NUeS^cus3fstHS# zVwv1R>aHnBMN|)XHD6-S;}NbxTl?N6bfNdSh}DwzT4Nug8aa3{z`jn+F50YlAQ{%b zR*8RXtv5C>|Co~7UQ=@^i`rdiT<7bI zVtQ6LJ=)KWw3S&6=x-|KA98JnoE;zeYZpJ5xa&FO!Nn)!4-FKj=f;8(wpl8=@cO0P z0P6~$teNz`=u}E!#gZl^!PIbkDF-i*ouL#bMQV`;yEty(DrA#wxI1|N9*U(xY1{kNRIE*gbbg^Z>lt<-G-K^U z1Pm+)N?bm!{o{tRjJ(Y?Y>%N+=o}RrN33Emj!`;Xz3Zq<{<-Xq>W=Zr+KV|$7C$zR zXU~RS)vAhM7y1=}CNSu9HtNuLBx8=yJ@*aRs*-O&*mo(F2> zRI)ys9ThW$do~?jeAPk8AAu5p{|5w(uU}Im@co7QvU{A-Yu_K34C>?QP{1ho{us$) z6gf#70@$wo3Xj_cges=__9|uAFP9KRXg9{3w8@P&<2?pQBY^mj9cWo0M_`)Or_U%i zD{TjiyB^jP=_YD@+jz#F_M)1W1JaZ8s3Y;Gy7hWwMLTzLg8sr6*D+mdBK@gz+h2mN z+393k-20;;c&Z&-g>IiAtukCJKaAxyX#Wf2AQmu?Y$ek6*e{?N2#w%%Yz&$Q$%gUo zxuZE2X(ye57(h;j%+eaI7L@|>T4TgaVw^H3#yW)O+Avzh@pO5~wstBo+bD9g=7dMz z-CUm`PK6~sO@3(dMZ@M8;!9%8BU=8SJ(HtAasY3l3FY}m_}JV(k!97bO8eMkScHeB zbg35t`4fKgvt~Q$Z_*Ghg3cg2MB;l8VQ=m9TBc2CbEb)z!x|MHu9v&fQGIqM_2os< zFlLCk>zA`zCPxh)TKmvLfGEkNOwhj#be#=}9*Xj(WybZEHU7}MY^PBF=Chcviw!LU zfvgeWq`(Aot9H;?dc5ot?dw11SaE22-e<~0fmVAiHFx?};c3&x%!%BBic6%>URYk9 zK1Ep)Z+z|*u2P0g0#`b)G%O+YXDPwo~Y|81df z_~tcg=B`RBcYD3bOZq*ai`(UM42jVahb79q@SkSD@OBS`grMUXv9vz zftlUVxL8dva>pUAISrjUR~cS>I$l$(;RZFX(6|-{LjeB)cN#PB^|I8=%*h z9;MEtmr2`{xU;1}IC`D^{akO}Og$IlNcj1|4r}j~&6qS~Pcyy0zuuFY7&Q}SxmV@t zT9<%pN7?FHEjOwQq+Oy2PhusW7V8_K}K@r<=9j&Je+VWXAaAPJ z+9#x<5o#w<3U(u$Nh5OoZ(+rle!^Vp2i-J1h?@B0*?D%)-hN(>sycBQ#OPXazx<_g z?-%cv-TwE?HeFuD*IlGr6}Rtln)CX|S#Y4ed-Qn@K4lBIueZ2rLG5<)E&g{x1v8-L z2_iM|fK+#mXfdZ|7A|E|AT{sUT2tZ{V&b8Dsq8^*A|WY|hql=d$( zz*`OqMehFESsG;@77;!Fh|}uE=2p9SeG3S+Z&Y-3N*S0KYTs`3m9vCRVM*Np;5JZ2nnc>$sYfrN=`0qX!65=r1dT1wT_~J50eqP= z@b%D504vII5XTMG1hC_IHp!s0^|=Otd#uh5{QDN!jRW z?Q)bVkR)f<1qCDm%y9r--;4v(>O&5!x$!=V1B-6J_c<_Z1HQw7xd}DcBY{4!Ss>&W zHV0ieBU#s#09!|MdOo&+$s`UYi#DvqXJpq+N1&|hN3JY^z8VYu3G%}N6l`R@gHnL~ z4YZ{BtEK0BoR&j@$arb{Cn#FGU0*tC#Frh2ILXnyp{HSBbP94VPpFvGdH+*G;)q!?=g)^Rc&g2N+9+VFvWmh;u=;hjGy+=MA z1FJDeY5>T{OSdd`Ef{53u*9!O9 z!r{pEOoZF&>r4QtpK!k9CNXqWk}3u5VmYJZ-eefg6YL8{N9BIWy|3`ZCmjp0E^zR& zzEMz=6*gw;^PDf4T)g}l^b>qJ%fU z8eMf~<7{2suN~BI1PGeruxqU~cXa+zA3+~QIe1(T1LxQ91jST21158=dV81$LE`Xf zju6Y{rqnq)^Z{&6+Bp(BUv&s@D3lNzQ2?yu9FvVBHzr+im#`C{6Nlq#r2rod+I|52 z1W&#Or%f!N-Oiku`a|sB#+zjlF`P!mKmRg_=Kszq_scK@;XW;U-Ci` z93KEUcLUzeft@$tyZ;Vwe0?Vdg}>M!X4OW)6Py8R?-*j&2cCO}*&^|mN&{dHakPJF zFwniI{$#6Pw>-A7W>|lC07hSdeoMF5LbZ|X;D=iI3IQH{T zoTdZERy>&Kd-Y}4&-91f;@T3NIz0B^E*~5hc#$FG9RDRmZLHhcw?!c5G#2xY}u-gBM!VY)k5OU^w zl8m_jBjET49?t5j9R@-S?Y?rG&IV^FfKSxfk=VAJJjd*{hb^84Pkvk%iGOjHl-d*! zkA3OXb-jHjYY`_uBG$N7I+}5s>7AJK!6i@pGbgC^EBHK+V;ZUz1l+BdW$*Ob{%3jZ zrUbolrBzzk8t^Lz{Q;qfG%bg`{+@~Q_MqC8+_}2C9VG68!_j8G0WNdAtSs=`9W_XH z*Pio~;lfXrwIX+9);LnO_Ja4C6_Cu(^k2)?_(i2`e4(k$d?X$0PTND9U!Nv_G8YNlX?XE@$>+jmI}># zKngK5r8vFy2b@GeOZbGU?zOT);#{C|nY zw*5x$DlykqL2J|&3D?;=$Lx`r=us{f4Od#&7ECIwU3ocQcXu-Vb+1+^0e%g%ZCx>& zBr~w(KwH^?_9Kjy!x_zw1E1=<)6`Wcz8OW)AKuIp;*)H`nps3jyp0b?Rr9z!wa@Gn zRP$NW5^M}ZfWVA`23-rVfw{u%CLvmu9D+;T+oE?*=tsqQJLRNny&m!Kwq;_wIcN^7 zOC})$Hk?BC@9xT6I(g5AzadaCqeapCMWr1LeUFp8qPg~r6mQgvnd%Y_2H|}m1ctEb z=l?0(xoip;R>@c&uemus2qSpt@51d+7YV18iT&9|(MD#>N3-2ppwS6(T8Fn}t+mRa zicU=k-tSex+g%GOiz5%kZ6Iw!CE;240@$CuO`ox^WD!6=dxwgBzi;EI`Agx{B$A(D z65C$*Pj5Y?jKLm+!h*2WnDT4w2d%7rE`tt}eQ@JW8Tro!`%?YACE~Kg{;_DG@%qeHd+!6LtTyC*e+d6Sz-P)dTKov3*xJ8w45p{TVo!+tTV46PenctwzW&}HG=X7(pB^GheZRkn z9C;l1LyD(l*U6cf{}G(b9xj@xaKA=W==mR|dbaEnFDTr2+aBEB@FuisU{$@!yvs%X zo{*XJ48+OQk~$`m{RuRhGZT5Vmj-N?j=!^mj!!1o*@m6@7&IfOE9H{B_I1Q?LX%Y@ z+T0rm3Ojm+&XvIt+ax&R&+;3!a})C0KDy+AW>~;$@)K*lyikoxnT5j%!*epO&9_o# zXF+6Vrq{)sieWJ)$pZQ(!=Q7La>B8L?qS^8&O7p({}9X8ku?Oj`|%-k$nu^ z$~R|QvA&>-Z-0<|uX=an=-9%~J6HLr7LA+6OohZ*yBc7tXruac%>kvD=3{{=LHWD^ zQ48A2OHPL8FwSEQ3R>4L5ByLfR`mp#IYetdB^#eTYT*%M^+1Y>39_*8cF^y!YaQ90 zfwHK8XAqZAWOBs_yulqspEW5zxg)1jFDKBxY>d!{vP4OEv{(@n_+i+K;Po`-!jC#P zubQNS+pEs=72hT^ae>lo6D;thx*>yKP7a-sDltcpLr!X1`GG*@ai$%!;f8bPgU#|r zg!{t3+my&HIhiwgEujsK<}a^2OQQ))DN@-NA)b|CZ@N7>1T9&_QQ=Ix0li96LT7K zGXD%#SgOjBqIRRIJvvnC#E>dz<(U<;mSD!WHS%n;NnlKYcLrI4e4KU}L<_4NO)ENC z^TwF6OTK8{L%gHGi;u!tD;+nNfQ9JyymJfQ4s%Z7*yx`*rwhE?Rvwm^FG}ggMfIA>WbG=N^Jc3jEvJ(T1YEc) zH?I7ijGe}S4urEFuY)8e1s&RRnaBS)ZC(4_jX^Iim%^UNp$2P$BgX`Vc0ZLf70ou8 zq9gE$2#`5e z@KC#U7l)45_C}qh;l#50hM6ULX(2H-kxSO3x?@#i6L7r(k79Z*?5cMGy`E3xZF;9p z*Fo2sD_#Q?XPukwyF2J(OqOgadXs|{@h1?zGYKD9h{b zcw*x+q538YrJtlHThiXhOwBS+b6!HB%Tx#&#o5p2B|_hw%4msbFYc6}Dl^71VMG;> zC50j8+|!NB4ariOlv}Ar<~r^BM##azp{2Y+iA#@rNTRonWv(=eMm$Psndq)b`JuwlW3eSH zeRsj|_jU_pvd8S~ju#W`!=l-t*)R;&@WFqEof78u2arWNQ(YD=Z>s00OORxkIp&^_ z`-{@q(wj_sqV<`0sPf75!^K%1pK-o{ZmFwj7qJZ~ZS%DG?B4^?Td6^w8M=v2x&otG z?Z*-V`gJgx_#fi~CK>UjS^e?OlrEX@098ZRwfz!np>t;nJYtP?F01QPDCNtE_;Iu> z%ad=EqX9yz-xMUuUfTKW?A@2W$Nq{m!5T5*A_Czhc%mrhqR1a`>QZh`+kYI=a5c9T zmzU!6NWu#rnJ}VRR*GfE*gFLF~P2HQV8E4=VA=|(REUYmVry~Y3a0It76546m zzg}?`OFVURFJ~G5+4t8_L$VO&023^*dD&Y)?!E8>li%d|5z^94+06c|zN(3$u;TK7vcDP5Js`{sziS~|ARNGcyTezjB zeW~Ew=R(A{MnYyBtG;WQpkC|7ShwktN&?2%5de?Dox<3!ch6 zHhW$RpPMYcg&nl?zPh)p>|Od*qC<5l|n$%O@61<8r54j~TXVY2c+~6=8Q^{QDX>5?cLSp7pfCHbeCfSqBBpcYfsO-Bi2HT*DkDz^7PPh@oc8x4_wV^E#q04mCXE zDVEteUmn*`_VrYbvTn>-muZawg?g9v03*}LBx~-IRUNwgxB>gCPj=&1~s_3kFit80F(MpZ7hy<;jhDGi>in2b=DK!f#)Ek#o!2yT2>rdqu2DR)9aJapiL>TmkmM2? zEo~u9?apW>JwTPwmwK`NdEe(?!`M|SWU14|KuR1lZS-4)oJ%`}KxJVMcIdrcjn#<} znrc0(AC~$XKzHhFZeAR%?8*;Q;xo%@&5+~OJmKpW!L=BT_S~uP<&<`R8@$YYg^Fw9 z{%+u2V@iQdkW3V{pvAEy*wD*jY@t_)QJ9T47S-}NZe>XR&4_bU3srW`xZ-W>9!B^x zO1l`wu8hz)a_7q`bhFn3W6GI-dU^7nc14t@eUy`X5tmi&&#RarT!iXR+jH}(hil81ydW7##ASq zN2BEYqorC~=g#DaGe&x2x7)0p=Z0d7Q{pU`L%v^v>}FxF$GZ>?jNqJaB~s1=hEYXd z-t3!L>9)D#Ib8W`V!Jo0v0PR(A}hqX(ZC(KeFSbWsfP8?nV3$UO>Il|n^cLALwxh_ zL~y55%^wp1zDHf7XTBCXpqrJlU(XkOg4=@*m+oI_d8BlJGUU_0()VVK9iDEV5&P5z z&7l!v=l`=)r*z-H+Pm@Tv@7!3+xdWJ&Yoqr3g?f^wrkPV)c*1_XZ6YE=T=eu$zDIx zUoSZ-C3W>~cJ;L616gkN%bsp~f7gm5y6=YB7rE1u?6yub5=;Lpv9mu$`tOfRQRn}? zx4UMb{Cy=bODgyQ7a_KDzuOGj^v1Tbe*WW~eVf-F+5PEW?$$lpzwcgi%DK7nZN~Z6o`F<-nw2-4<5% z>hqb}yM?(-rAy`958c0C_(syu<*CFO;DWjbJ->GYgKWaHZ3QY5^g-=D(;k6&JF*Vz z@K15iN?*Ng%e%*C9yZ>~&5yjF@!8<>u8f6OE6$jmE8kMS&G6RC=w~wO9#@mkwpgw4 zebDv$5XdOtbeY=ZYUVTbp*#-$EBVW^?K$54EwJ3a?pm&o=Kiwis^0$|$r7ut-`Eqi zQa{{jch$DsD}@$U^6tO*`*+FpT^ehjpPTR~gYl%;=c~!Q0p~qFhwjR+zqIO3gmSN; zfV%^z2zbQleuxcN1FcA0a=;}gy2|E_?%KsinLpk!%HF!TtbW~=b?cw)_#!tu-1K%q zd3@5BjK@5W1>Tsv50Cn`aLb!1=eHy6XDhxMmA&%mEE(MwJXh2eK=o~*oc+>e2~zt^ zC+$AE&XHes;XG@(oOy2#8@|=FWLwhW6m(VQ^t9tUCzV~x3HP%uy6(5O?0H|T*I(1) zOP|enGUaOWo^vr*<5$mf&a1z_@-A?D=ikcf*XC>lHd5AKi4r%x6>GFSJm^#Z-d}yRPao*2Ilzs3o*ZsQ zObVO1G{52tC;H{!F zg>G!flkk0=d@uCp=C{Ij$`9m#TDI=w=K*SY|M&On|Da*O3peLFaz*t1Jqc_B0|)ql zi!~+Y0GF-;*=5h9`Cc0@+t60Pf1@@5DDVR~H3!^Q1sYHFX9{L8Sf|XRDFO~_;8wtZ zo#0l-wct;|JL}S>iymPsFOPe_u~xjPZ6}8_sOA7pF#z{Dr2q}eJ_WqX(2eOp%)G-B z-hBnh0VjSWCd|JK9FKS~SD>ti)8^Q}yT;ffjdwExvL7?m?G>9%(|m&fMAHxP|pfZoF6NZ1li-8XOdB>sKYSju{#Rdcs!1+7qrY7Kw%;NNjK#fT=Blo}T zkp#(FL*_RnJXTM561Z-Hi1voQ$CBXj@v^T!UcP?L&;i*h@%aHO!-BoX>;HZJ`pWis z%Ilr8K9{dy{-K*L@0D2Jy!WVFvdtu*gTdFNbbu#u51ff&Rf%P11`pL5$UXF6SOi@h zGaoo~3T#i<{QviBKgbOb;0+t*2XRri7{HfJ17#5Ns6Y movq Operand Combinations -

Simple Memory Addressing Mode

+

Memory Addressing Mode

  • Normal (R) => pointer dereferencing in C

    @@ -2557,9 +2557,208 @@ Conversion"/>
  • Displacement D(R) => accessing data at a fixed offset from a base address

    +

    movq 8(%rbp), %rdx equals:

    + + rdx = *(((char*)rbp) + 8) + +
  • +
  • +

    Complete Mode: D(Rb,Ri,S)

    + +
  • +

    D: Constant "displacement" 1, 2, or 4 bytes

    +
  • +
  • +

    Rb: Base register: Any of 16 integer registers

    +
  • +
  • +

    Ri: Index register: Any, except for %rsp

    +
  • +
  • +

    S: Scale: 1, 2, 4, or 8

    +
  • +
    +

    Example: movl (%rbx,%rdi,4), %eax

    + +
  • +

    Calculate the address: %rbx + (4 * %rdi) (e.g., base address + 4 * 5 = base address + + 20).

    +
  • +
  • +

    Access the 32-bit value at that calculated address.

    +
  • +
  • +

    Move the retrieved value into the %eax register.

    +
  • +
    + +

    leaq src, dst

    + + leaq (%rdi,%rdi,2), %rax ; Calculate the address of the element at index rdx in an array of integers pointed to by rsi (assuming 4 bytes per integer) + +

    It can also be used for arithmetic expressions.

    + + leaq (%rdi,%rdi,2), %rax ; Calculate rax = rdi + (rdi * 2) = 3 * rdi + +
    + +

    Two Operand Instructions:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FormatComputation
    addq src, destdest = dest + src
    subq src, destdest = dest - src
    imulq src, destdest = dest * src
    salq src, destdest = dest << src
    sarq src, dest (Arithmetic Shift)dest = dest >> src
    shrq src, dest (Logical Shift)dest = dest >> src
    xorq src, destdest = dest ^ src
    andq src, destdest = dest & src
    orq src, destdest = dest | src
    + +

    Watch out for the argument order!

    +

    Intel docs use "op dest, src"!

    +
    +

    One Operand Instructions:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FormatComputation
    incq destdest = dest + 1
    decq src, destdest = dest - 1
    negq src, destdest = - dest
    notq destdest = ~ dest
    sarq src, dest (Arithmetic Shift)dest = dest >> src
    shrq src, dest (Logical Shift)dest = dest >> src
    xorq src, destdest = dest ^ src
    andq src, destdest = dest & src
    orq src, destdest = dest | src
    +

    Example

    + + long arith(long x, long y, long z) { + long t1 = x + y; + long t2 = z + t1; + long t3 = x + 4; + long t4 = y * 48; + long t5 = t3 + t4; + long rval = t2 * t5; + return rval; + } + + + 0000000000001149 <arith>: + 1149: f3 0f 1e fa endbr64 + 114d: 55 push %rbp + 114e: 48 89 e5 mov %rsp,%rbp + 1151: 48 89 7d c8 mov %rdi,-0x38(%rbp) # Store x on the stack + 1155: 48 89 75 c0 mov %rsi,-0x40(%rbp) # Store y on the stack + 1159: 48 89 55 b8 mov %rdx,-0x48(%rbp) # Store z on the stack + 115d: 48 8b 55 c8 mov -0x38(%rbp),%rdx # Load x into rdx + 1161: 48 8b 45 c0 mov -0x40(%rbp),%rax # Load y into rax + 1165: 48 01 d0 add %rdx,%rax # t1 = x + y + 1168: 48 89 45 d0 mov %rax,-0x30(%rbp) # Store t1 on the stack + 116c: 48 8b 55 b8 mov -0x48(%rbp),%rdx # Load z into rdx + 1170: 48 8b 45 d0 mov -0x30(%rbp),%rax # Load t1 into rax + 1174: 48 01 d0 add %rdx,%rax # t2 = z + t1 + 1177: 48 89 45 d8 mov %rax,-0x28(%rbp) # Store t2 on the stack + 117b: 48 8b 45 c8 mov -0x38(%rbp),%rax # Load x into rax + 117f: 48 83 c0 04 add $0x4,%rax # t3 = x + 4 + 1183: 48 89 45 e0 mov %rax,-0x20(%rbp) # Store t3 on the stack + 1187: 48 8b 55 c0 mov -0x40(%rbp),%rdx # Load y into rdx + 118b: 48 89 d0 mov %rdx,%rax # Copy y into rax (for multiplication) + 118e: 48 01 c0 add %rax,%rax # Multiply y by 2 (left shift) + 1191: 48 01 d0 add %rdx,%rax # Add y (original value) so now its 3y + 1194: 48 c1 e0 04 shl $0x4,%rax # Multiply by 16 (left shift 4) 3y*16 = 48y + 1198: 48 89 45 e8 mov %rax,-0x18(%rbp) # Store t4 = 48 * y on the stack + 119c: 48 8b 55 e0 mov -0x20(%rbp),%rdx # Load t3 into rdx + 11a0: 48 8b 45 e8 mov -0x18(%rbp),%rax # Load t4 into rax + 11a4: 48 01 d0 add %rdx,%rax # t5 = t3 + t4 + 11a7: 48 89 45 f0 mov %rax,-0x10(%rbp) # Store t5 on the stack + 11ab: 48 8b 45 d8 mov -0x28(%rbp),%rax # Load t2 into rax + 11af: 48 0f af 45 f0 imul -0x10(%rbp),%rax # rval = t2 * t5 + 11b4: 48 89 45 f8 mov %rax,-0x8(%rbp) # Store rval on the stack + 11b8: 48 8b 45 f8 mov -0x8(%rbp),%rax # Move rval into rax (return value) + 11bc: 5d pop %rbp # Restore the caller's base pointer + 11bd: c3 ret # Return from the function + +
    + + +

    Compile with the following code (debugging-friendly):

    + + gcc –Og p1.c -o p + + C, Assembly & Machine Code +

    Use the following command to generate the assembly code:

    + + gcc –Og –S p1.c + +

    Use the following command to disassembly the machine code:

    + + objdump –d p1 +