#[1]Stack Overflow [2]Feed for question 'What is PC-relative addressing and how can I use it in MASM?' [3]Stack Overflow ____________________ (BUTTON) 1. 2. 3. 4. 5. 6. [4]Log In [5]Sign Up 7. [6]current community + Stack Overflow [7]help [8]chat + Meta Stack Overflow your communities [9]Sign up or [10]log in to customize your list. [11]more stack exchange communities [12]company blog + [13]Tour Start here for a quick overview of the site + [14]Help Center Detailed answers to any questions you might have + [15]Meta Discuss the workings and policies of this site + [16]About Us Learn more about Stack Overflow the company + [17]Business Learn more about hiring developers or posting ads with us This site uses cookies to deliver our services and to show you relevant ads and job listings. By using our site, you acknowledge that you have read and understand our [18]Cookie Policy, [19]Privacy Policy, and our [20]Terms of Service. Your use of Stack Overflow's Products and Services, including the Stack Overflow Network, is subject to these policies and terms. Join us in building a kind, collaborative learning community via our updated [21]Code of Conduct. Join Stack Overflow to learn, share knowledge, and build your career. [22]Email Sign Up Sign Up or sign in with Google Facebook 1. 2. [23]Home 3. 1. Public 2. [24]Stack Overflow 3. [25]Tags 4. [26]Users 5. [27]Jobs 4. 1. Teams Q&A for work [28]Create Team [29]What is PC-relative addressing and how can I use it in MASM? [30]Ask Question up vote 2 down vote [31]favorite I'm following Jack Crenshaw's compiler tutorial (If you look at my profile, that's what all my questions are about lol) and it just got to the point where variables are introduced. He comments that the 68k requires everything to be "position-independent" which means it's "PC-relative". I get that PC is the program counter, and on x86 it's EIP. But he uses syntax like MOVE X(PC),D0 where X is a variable name. I've read a little ahead and it says nothing later about declaring a variable in .data. How does this work? To make this work in x86, what would I replace X(PC) with in MOV EAX, X(PC)? To be honest I'm not even sure this is supposed to output working code yet, but up to this point it has and I've added code to my compiler that adds the appropriate headers etc and a batch file to assemble, link and run the result. [32]assembly [33]x86 [34]masm [35]68000 [36]addressing [37]share|[38]improve this question asked Aug 26 '13 at 15:26 [39]rpatel3001 2816 * You can't do that on x86 (you could on x64), there is just no way to express an EIP-relative address. - [40]harold Aug 26 '13 at 15:41 * @harold Well, I'm working on a 64 bit machine so I might as well make it easier for myself. What's the syntax for doing so, and what changes would I have to make to the header? - [41]rpatel3001 Aug 26 '13 at 15:43 * I'm not sure, I don't really use MASM. Maybe [rel labelname]? Maybe [rip + offset]? Don't forget the dword ptr-nonsense. If you're outputting bytes instead of text, you'd output a ModRM byte where the mod field is zero and the RM field is 5, and the offset is an sdword after that. - [42]harold Aug 26 '13 at 15:50 * You could also just use absolute addressing of course (optionally with relocation information). - [43]harold Aug 26 '13 at 15:59 * @harold but how would I access the variable using a name without having declared it first? And doesn't (E/R)IP change based on what instruction is being executed? - [44]rpatel3001 Aug 26 '13 at 16:50 | [45]show 2 more comments 2 Answers 2 [46]active [47]oldest [48]votes up vote 4 down vote accepted Here's a short overview over what a statically allocated global variable (which is what this question is about) really is and what to do about them. What is a variable anyway To the machine, there is no such thing as a variable. It never hears about them, it never cares about them, it just has no concept of them. They're just a convention to assign a consistent meaning to a particular location in RAM (in the case of virtual memory, a position in your address space). Where you actually put a variable, is sort of up to you - but within reason. If you're going to write to it (and you probably are), it had better be in a writable location, which means: the address of that variable should fall within a memory area that is allocated and writable. The .data section is just an other convention for that. You don't have to call it that, you don't even need a separate section (you could make your .text section writable and allocate your globals there, if you really wanted), you could even use OS functions like VirtualAllocEx (or equivalent) to allocate memory at a fixed position and use that (but don't do that). It's up to you. But the .data section is a convenient place to put them. "Allocating" the variables is just a matter of choosing an address such that the variable doesn't overlap with any other variable. That's not hard, just lay them out sequentially: start a pointer var_ptr at the beginning of wherever you're going to put them (so the VA of your .data section, or 0 if you're using a linker), and then for every variable v: * the location l of v is align(var_ptr, round_up_to_power_of_2(sizeof(v))) * set var_ptr to l + sizeof(v) As a minor variation, you could skip the alignment (most compiler textbooks do that, but in real life you should align). x86 usually lets you get away with that. As a bigger variation, you could try to "fill the holes" left by the alignments. The simplest way to fill at least most holes is to just sort the variables biggest-first (that fills all holes if all sizes are powers of two). While that may save some space (though not necessarily any, because sections are aligned themselves), it never saves much. Under the usual alignment rules the "just lay them out sequentially"-algorithm will, at worst, waste nearly half the space it uses on holes. The pattern that leads to that is an alternating sequence of the smallest type and the biggest type. And let's be honest, that wouldn't really happen - and even if it did, that's not all that bad. Then, you have to make sure that the .data segment is big enough to hold all variables, and that the initial contents match what the variables were initialized with. But you don't even have to do any of this. You can use variable declarations in the assembly code (you know how to do this), and then the assembler/linker (they typically both play a roll in this) will do all of this for you (and, of course, it will also do the replacement of variable names by variable addresses). How to use a variable It depends. If you're using an assembler/linker, just refer to the label that you gave the variable. The label, of course, does not have to match the name in the source code, it can be any legal unique name (for example, you could use the AST node ID of the declaration with an underscore in front of it). So loading a variable could look like this: mov eax, dword ptr [variablelabel] Or, on x64, perhaps this mov eax, dword ptr [rel variablelabel] Which would emit a rip-relative address. If you do that, you don't have to care about the current value of RIP or where the variable is allocated, the assembler/linker will take care of it. On x64, using a RIP-relative address like that is common, for several reasons: * it allows the .data segment to be somewhere that isn't the first 4GB (or 2GB) of address space, as long as it's close to the .text segment * it's shorter than an instruction with an absolute 64bit address * there are only two instructions that even take an absolute 64bit address, namely mov rax,[imm64] and mov [imm64],rax * you get relocations for free If you're not using an assembler and/or linker, it becomes (at least to some extend) your own job to replace variable-names by whatever address you allocated for them (if you're using a linker but no assembler, you'd make relocation data but you wouldn't yourself decide on the absolute addresses of variables). When you're using absolute addresses, you can "put them in" in parallel with emitting instructions (provided you've already allocated the variables). When you're using RIP-relative addresses, you can only put them in once you decide where the code will be (so you'd emit code where the offsets are 0, do some bookkeeping, decide where the code will be, then you go back and replace the 0's by the real offsets), which is a non-trivial problem in itself unless you use a naive way and don't care about branch-size-optimization (in that case you know the address of an instruction at the time you emit it, and therefore what the offset of a variable relative to RIP would be). A RIP-relative offset is easy enough to calculate, just subtract the RIP of the position immediately after the current instruction from the VA (virtual address) of the variable. But that's not all You may want to make some variables non-writable, to the point that any attempt to write to them in "funny ways that the compile can't detect" will fail. That can be accomplished by putting them in a read-only section, typically called .rdata (but the name is irrelevant really, what matters is whether the "writable" flag of the section is set in the PE header). This isn't done often, though it is sometimes used for string or array constants (which aren't properly variables). What is done regularly, is putting zero-initialized variables in their own section, a section that takes no space in the executable file but is instead simply zeroed out. Putting zero-initialized variables may save some space in the executable. This section is commonly called .bss (not short for bullsh*t section), but as always, the name is irrelevant. More Most compiler textbooks deal with this subject to varying amounts, though usually not in much detail, because when you get right down to it: static variables aren't hard. Certainly not compared most other aspects of compilations. Also, some aspects are very platform specific, such as the details around the sections and how things actually end up in an executable. Some sources/useful things (I've found all of these useful while working on compilers): * [49]PE101 * [50]PE In Depth * [51]PE Explorer * [52]CFF Explorer * [53]Intel Manuals [54]share|[55]improve this answer answered Aug 26 '13 at 20:00 [56]harold 39k354106 * Wow thanks for writing all that up. So, no matter how I access the memory, I have to declare that much space being used in .data (being new to the whole assembly thing I don't quite understand how/where you would set read/writability of a section)? Since there's no way to do it the (easier) 68k way, I'll probably end up adding the variable to .data. - [57]rpatel3001 Aug 27 '13 at 2:19 add a comment | up vote 3 down vote Many processors support PC-Relative or Absolute addressing. On X86 machines however there is the following restriction: * Jumps and Calls are always PC-Relative (unless register-based) * Other adresses are always Absolute (unless register-based) C compilers that can do PC-Relative addressing will implement this the following way: CALL x x: ; Now address "x" is on the stack POP EDI ; Now EDI contains address of "x" ; Now we can do (pseudo-)PC-Relative addressing: MOV EAX,[EDI+1234] This is used if the address of the code in the memory is not known during compile/linking time (e.g. for dynmaic libraries (DLLs) under Linux) so the address of a variable (here located at address "x+1234") is not known, yet. [58]share|[59]improve this answer answered Aug 26 '13 at 15:54 [60]Martin Rosenau 7,3591720 * So to use variables by name, I'd have to add a label corresponding to the name of each, and do the call/pop/mov everytime I want to access it? And what determines the offset from EDI to use? - [61]rpatel3001 Aug 26 '13 at 16:54 * The x86 doesn't have relative addressing in the 32-bit mode, but it does in 64-bit mode. See [62]wiki.osdev.org/... - [63]ataylor Sep 1 '16 at 21:59 add a comment | Your Answer _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ draft saved draft discarded ____________________ Sign up or [64]log in Sign up using Google Sign up using Facebook Sign up using Email and Password [BUTTON Input] (not implemented)______ Post as a guest Name ______________________________ Email ______________________________ Post as a guest Name ______________________________ Email ______________________________ (BUTTON) Post Your Answer (BUTTON) Discard By clicking "Post Your Answer", you acknowledge that you have read our updated [65]terms of service, [66]privacy policy and [67]cookie policy, and that your continued use of the website is subject to these policies. Not the answer you're looking for? Browse other questions tagged [68]assembly [69]x86 [70]masm [71]68000 [72]addressing or [73]ask your own question. asked 4 years, 11 months ago viewed 2,713 times active [74]4 years, 11 months ago Linked 1 [75]Lambdas as closures taking environment. The crucial role of RIP register Related 8 [76]Assembly: Using the Data Segment Register (DS) 547 [77]How do I achieve the theoretical maximum of 4 FLOPs per cycle? 0 [78]Assembly bubble sort swap 4 [79]Using RIP-relative addressing in OSX x64 assembly 2 [80]Incorrect output to Fibonacci series in MASM 1 [81]MASM error A2088, but only when assembled from within Java 3 [82]What c code would compile to something like `call *%eax`? 1158 [83]Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviations 1 [84]MASM Mov from/to immediate memory address 3 [85]How to write an absolute target for a near direct relative call/jmp in MASM [86]Hot Network Questions * [87]Purpose of [ -n "$PS1" ] in bashrc * [88]Polynomial cannot have all roots real? * [89]Why are escape characters not working when I read from cin? * [90]Why did I have to wave my hand in front of my ID card? * [91]Does this triangle-area theorem have a name? * [92]Is a pig-mounted cavalry possible? * [93]Why are airlines so concerned with checked baggage weight? * [94]What is the need of assumptions in linear regression? * [95]Is "spaced by 1 meter" correct English? * [96]Is this news article from 1912, essentially explaining climate change, real? * [97]Teaching the daughter of a lecturer, while being enrolled into a course of him * [98]Form Ui Component doesn't submit field in the html content * [99]How do I show concern to my manager, who is coming back from an emergency leave? Want to ask him if everything was good back at home * [100]Is it Possible to use the Result of Callout1 in Callout2? * [101]How to handle colleagues who are unwilling to write a bug report? * [102]What is a person being envied called? * [103]Is it legal to invent "artificial" bills to build credit? * [104]Kid throwing ice cream cone back to the vendor * [105]What's the difference between "vanilla" and "plain" when talking about yogurts? * [106]How would schools that take in multiple nationalities address the language barrier issue? * [107]What is the recommended level of detail for published mathematical proofs? * [108]What does "junk-food-scoffing masses" mean? * [109]How do non-LaTeX users handle citations? * [110]As I Was Reflecting On Nothing [111]more hot questions [112]question feed [113]Stack Overflow * [114]Questions * [115]Jobs * [116]Developer Jobs Directory * [117]Salary Calculator * [118]Help * Mobile [119]Products * [120]Teams * [121]Talent * [122]Engagement * [123]Enterprise [124]Company * [125]About * [126]Press * [127]Work Here * [128]Legal * [129]Privacy Policy * [130]Contact Us [131]Stack Exchange Network * [132]Technology * [133]Life / Arts * [134]Culture / Recreation * [135]Science * [136]Other * [137]Stack Overflow * [138]Server Fault * [139]Super User * [140]Web Applications * [141]Ask Ubuntu * [142]Webmasters * [143]Game Development * [144]TeX - LaTeX * [145]Software Engineering * [146]Unix & Linux * [147]Ask Different (Apple) * [148]WordPress Development * [149]Geographic Information Systems * [150]Electrical Engineering * [151]Android Enthusiasts * [152]Information Security * [153]Database Administrators * [154]Drupal Answers * [155]SharePoint * [156]User Experience * [157]Mathematica * [158]Salesforce * [159]ExpressionEngine® Answers * [160]Stack Overflow em Português * [161]Blender * [162]Network Engineering * [163]Cryptography * [164]Code Review * [165]Magento * [166]Software Recommendations * [167]Signal Processing * [168]Emacs * [169]Raspberry Pi * [170]Stack Overflow na russkom * [171]Programming Puzzles & Code Golf * [172]Stack Overflow en español * [173]Ethereum * [174]Data Science * [175]Arduino * [176]Bitcoin * [177]more (30) * [178]Photography * [179]Science Fiction & Fantasy * [180]Graphic Design * [181]Movies & TV * [182]Music: Practice & Theory * [183]Worldbuilding * [184]Seasoned Advice (cooking) * [185]Home Improvement * [186]Personal Finance & Money * [187]Academia * [188]Law * [189]more (15) * [190]English Language & Usage * [191]Skeptics * [192]Mi Yodeya (Judaism) * [193]Travel * [194]Christianity * [195]English Language Learners * [196]Japanese Language * [197]Arqade (gaming) * [198]Bicycles * [199]Role-playing Games * [200]Anime & Manga * [201]Puzzling * [202]Motor Vehicle Maintenance & Repair * [203]more (33) * [204]MathOverflow * [205]Mathematics * [206]Cross Validated (stats) * [207]Theoretical Computer Science * [208]Physics * [209]Chemistry * [210]Biology * [211]Computer Science * [212]Philosophy * [213]more (10) * [214]Meta Stack Exchange * [215]Stack Apps * [216]API * [217]Data * [218]Area 51 * [219]Blog * [220]Facebook * [221]Twitter * [222]LinkedIn site design / logo © 2018 Stack Exchange Inc; user contributions licensed under [223]cc by-sa 3.0 with [224]attribution required. rev 2018.8.15.31327 Stack Overflow works best with JavaScript enabled References Visible links: 1. https://stackoverflow.com/opensearch.xml 2. https://stackoverflow.com/feeds/question/18447627 3. https://stackoverflow.com/ 4. https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f18447627%2fwhat-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 5. https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent 6. https://stackoverflow.com/ 7. https://stackoverflow.com/help 8. https://chat.stackoverflow.com/ 9. https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=%2fusers%2fstory%2fcurrent 10. https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f18447627%2fwhat-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 11. https://stackexchange.com/sites 12. https://stackoverflow.blog/ 13. https://stackoverflow.com/tour 14. https://stackoverflow.com/help 15. https://meta.stackoverflow.com/ 16. https://stackoverflow.com/company/about 17. https://www.stackoverflowbusiness.com/?ref=topbar_help 18. https://stackoverflow.com/legal/cookie-policy 19. https://stackoverflow.com/legal/privacy-policy 20. https://stackoverflow.com/legal/terms-of-service/public 21. https://stackoverflow.com/conduct 22. https://stackoverflow.com/users/signup?ssrc=hero&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f18447627%2fwhat-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 23. https://stackoverflow.com/ 24. https://stackoverflow.com/questions 25. https://stackoverflow.com/tags 26. https://stackoverflow.com/users 27. https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab 28. https://stackoverflow.com/teams 29. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 30. https://stackoverflow.com/questions/ask 31. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 32. https://stackoverflow.com/questions/tagged/assembly 33. https://stackoverflow.com/questions/tagged/x86 34. https://stackoverflow.com/questions/tagged/masm 35. https://stackoverflow.com/questions/tagged/68000 36. https://stackoverflow.com/questions/tagged/addressing 37. https://stackoverflow.com/q/18447627 38. https://stackoverflow.com/posts/18447627/edit 39. https://stackoverflow.com/users/2708313/rpatel3001 40. https://stackoverflow.com/users/555045/harold 41. https://stackoverflow.com/users/2708313/rpatel3001 42. https://stackoverflow.com/users/555045/harold 43. https://stackoverflow.com/users/555045/harold 44. https://stackoverflow.com/users/2708313/rpatel3001 45. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 46. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm?answertab=active#tab-top 47. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm?answertab=oldest#tab-top 48. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm?answertab=votes#tab-top 49. http://code.google.com/p/corkami/wiki/PE101 50. http://msdn.microsoft.com/en-us/magazine/cc301805.aspx 51. http://www.heaventools.com/overview.htm 52. http://www.ntcore.com/exsuite.php 53. http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html?wapkw=%28Intel%20Architecture%20Software%20Developer%E2%80%99s%20Manual%2991 54. https://stackoverflow.com/a/18452082 55. https://stackoverflow.com/posts/18452082/edit 56. https://stackoverflow.com/users/555045/harold 57. https://stackoverflow.com/users/2708313/rpatel3001 58. https://stackoverflow.com/a/18448109 59. https://stackoverflow.com/posts/18448109/edit 60. https://stackoverflow.com/users/2705055/martin-rosenau 61. https://stackoverflow.com/users/2708313/rpatel3001 62. http://wiki.osdev.org/X86-64_Instruction_Encoding#RIP.2FEIP-relative_addressing 63. https://stackoverflow.com/users/190201/ataylor 64. https://stackoverflow.com/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f18447627%2fwhat-is-pc-relative-addressing-and-how-can-i-use-it-in-masm%23new-answer 65. https://stackoverflow.com/legal/terms-of-service/public 66. https://stackoverflow.com/legal/privacy-policy 67. https://stackoverflow.com/legal/cookie-policy 68. https://stackoverflow.com/questions/tagged/assembly 69. https://stackoverflow.com/questions/tagged/x86 70. https://stackoverflow.com/questions/tagged/masm 71. https://stackoverflow.com/questions/tagged/68000 72. https://stackoverflow.com/questions/tagged/addressing 73. https://stackoverflow.com/questions/ask 74. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm?lastactivity 75. https://stackoverflow.com/questions/40841057/lambdas-as-closures-taking-environment-the-crucial-role-of-rip-register?noredirect=1 76. https://stackoverflow.com/questions/4903906/assembly-using-the-data-segment-register-ds 77. https://stackoverflow.com/questions/8389648/how-do-i-achieve-the-theoretical-maximum-of-4-flops-per-cycle 78. https://stackoverflow.com/questions/11497966/assembly-bubble-sort-swap 79. https://stackoverflow.com/questions/12339972/using-rip-relative-addressing-in-osx-x64-assembly 80. https://stackoverflow.com/questions/13218552/incorrect-output-to-fibonacci-series-in-masm 81. https://stackoverflow.com/questions/18424714/masm-error-a2088-but-only-when-assembled-from-within-java 82. https://stackoverflow.com/questions/21324087/what-c-code-would-compile-to-something-like-call-eax 83. https://stackoverflow.com/questions/25078285/replacing-a-32-bit-loop-counter-with-64-bit-introduces-crazy-performance-deviati 84. https://stackoverflow.com/questions/35904895/masm-mov-from-to-immediate-memory-address 85. https://stackoverflow.com/questions/50058523/how-to-write-an-absolute-target-for-a-near-direct-relative-call-jmp-in-masm 86. https://stackexchange.com/questions?tab=hot 87. https://unix.stackexchange.com/questions/462663/purpose-of-n-ps1-in-bashrc 88. https://math.stackexchange.com/questions/2884490/polynomial-cannot-have-all-roots-real 89. https://stackoverflow.com/questions/51864157/why-are-escape-characters-not-working-when-i-read-from-cin 90. https://security.stackexchange.com/questions/191460/why-did-i-have-to-wave-my-hand-in-front-of-my-id-card 91. https://math.stackexchange.com/questions/2884063/does-this-triangle-area-theorem-have-a-name 92. https://worldbuilding.stackexchange.com/questions/121474/is-a-pig-mounted-cavalry-possible 93. https://aviation.stackexchange.com/questions/54337/why-are-airlines-so-concerned-with-checked-baggage-weight 94. https://stats.stackexchange.com/questions/362284/what-is-the-need-of-assumptions-in-linear-regression 95. https://ell.stackexchange.com/questions/176416/is-spaced-by-1-meter-correct-english 96. https://skeptics.stackexchange.com/questions/42008/is-this-news-article-from-1912-essentially-explaining-climate-change-real 97. https://academia.stackexchange.com/questions/115353/teaching-the-daughter-of-a-lecturer-while-being-enrolled-into-a-course-of-him 98. https://magento.stackexchange.com/questions/238520/form-ui-component-doesnt-submit-field-in-the-html-content 99. https://workplace.stackexchange.com/questions/117573/how-do-i-show-concern-to-my-manager-who-is-coming-back-from-an-emergency-leave 100. https://salesforce.stackexchange.com/questions/229056/is-it-possible-to-use-the-result-of-callout1-in-callout2 101. https://workplace.stackexchange.com/questions/117560/how-to-handle-colleagues-who-are-unwilling-to-write-a-bug-report 102. https://english.stackexchange.com/questions/460338/what-is-a-person-being-envied-called 103. https://money.stackexchange.com/questions/98585/is-it-legal-to-invent-artificial-bills-to-build-credit 104. https://parenting.stackexchange.com/questions/34647/kid-throwing-ice-cream-cone-back-to-the-vendor 105. https://ell.stackexchange.com/questions/176388/whats-the-difference-between-vanilla-and-plain-when-talking-about-yogurts 106. https://scifi.stackexchange.com/questions/192898/how-would-schools-that-take-in-multiple-nationalities-address-the-language-barri 107. https://academia.stackexchange.com/questions/115325/what-is-the-recommended-level-of-detail-for-published-mathematical-proofs 108. https://english.stackexchange.com/questions/460209/what-does-junk-food-scoffing-masses-mean 109. https://academia.stackexchange.com/questions/115291/how-do-non-latex-users-handle-citations 110. https://puzzling.stackexchange.com/questions/69671/as-i-was-reflecting-on-nothing 111. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 112. https://stackoverflow.com/feeds/question/18447627 113. https://stackoverflow.com/ 114. https://stackoverflow.com/questions 115. https://stackoverflow.com/jobs 116. https://stackoverflow.com/jobs/directory/developer-jobs 117. https://stackoverflow.com/jobs/salary 118. https://stackoverflow.com/help 119. https://www.stackoverflowbusiness.com/ 120. https://stackoverflow.com/teams 121. https://www.stackoverflowbusiness.com/talent 122. https://www.stackoverflowbusiness.com/advertise 123. https://stackoverflow.com/enterprise 124. https://stackoverflow.com/company/about 125. https://stackoverflow.com/company/about 126. https://stackoverflow.com/company/press 127. https://stackoverflow.com/company/work-here 128. https://stackoverflow.com/legal 129. https://stackoverflow.com/legal/privacy-policy 130. https://stackoverflow.com/company/contact 131. https://stackexchange.com/ 132. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 133. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 134. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 135. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 136. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 137. https://stackoverflow.com/ 138. https://serverfault.com/ 139. https://superuser.com/ 140. https://webapps.stackexchange.com/ 141. https://askubuntu.com/ 142. https://webmasters.stackexchange.com/ 143. https://gamedev.stackexchange.com/ 144. https://tex.stackexchange.com/ 145. https://softwareengineering.stackexchange.com/ 146. https://unix.stackexchange.com/ 147. https://apple.stackexchange.com/ 148. https://wordpress.stackexchange.com/ 149. https://gis.stackexchange.com/ 150. https://electronics.stackexchange.com/ 151. https://android.stackexchange.com/ 152. https://security.stackexchange.com/ 153. https://dba.stackexchange.com/ 154. https://drupal.stackexchange.com/ 155. https://sharepoint.stackexchange.com/ 156. https://ux.stackexchange.com/ 157. https://mathematica.stackexchange.com/ 158. https://salesforce.stackexchange.com/ 159. https://expressionengine.stackexchange.com/ 160. https://pt.stackoverflow.com/ 161. https://blender.stackexchange.com/ 162. https://networkengineering.stackexchange.com/ 163. https://crypto.stackexchange.com/ 164. https://codereview.stackexchange.com/ 165. https://magento.stackexchange.com/ 166. https://softwarerecs.stackexchange.com/ 167. https://dsp.stackexchange.com/ 168. https://emacs.stackexchange.com/ 169. https://raspberrypi.stackexchange.com/ 170. https://ru.stackoverflow.com/ 171. https://codegolf.stackexchange.com/ 172. https://es.stackoverflow.com/ 173. https://ethereum.stackexchange.com/ 174. https://datascience.stackexchange.com/ 175. https://arduino.stackexchange.com/ 176. https://bitcoin.stackexchange.com/ 177. https://stackexchange.com/sites#technology 178. https://photo.stackexchange.com/ 179. https://scifi.stackexchange.com/ 180. https://graphicdesign.stackexchange.com/ 181. https://movies.stackexchange.com/ 182. https://music.stackexchange.com/ 183. https://worldbuilding.stackexchange.com/ 184. https://cooking.stackexchange.com/ 185. https://diy.stackexchange.com/ 186. https://money.stackexchange.com/ 187. https://academia.stackexchange.com/ 188. https://law.stackexchange.com/ 189. https://stackexchange.com/sites#lifearts 190. https://english.stackexchange.com/ 191. https://skeptics.stackexchange.com/ 192. https://judaism.stackexchange.com/ 193. https://travel.stackexchange.com/ 194. https://christianity.stackexchange.com/ 195. https://ell.stackexchange.com/ 196. https://japanese.stackexchange.com/ 197. https://gaming.stackexchange.com/ 198. https://bicycles.stackexchange.com/ 199. https://rpg.stackexchange.com/ 200. https://anime.stackexchange.com/ 201. https://puzzling.stackexchange.com/ 202. https://mechanics.stackexchange.com/ 203. https://stackexchange.com/sites#culturerecreation 204. https://mathoverflow.net/ 205. https://math.stackexchange.com/ 206. https://stats.stackexchange.com/ 207. https://cstheory.stackexchange.com/ 208. https://physics.stackexchange.com/ 209. https://chemistry.stackexchange.com/ 210. https://biology.stackexchange.com/ 211. https://cs.stackexchange.com/ 212. https://philosophy.stackexchange.com/ 213. https://stackexchange.com/sites#science 214. https://meta.stackexchange.com/ 215. https://stackapps.com/ 216. https://api.stackexchange.com/ 217. https://data.stackexchange.com/ 218. https://area51.stackexchange.com/ 219. https://stackoverflow.blog/?blb=1 220. https://www.facebook.com/officialstackoverflow/ 221. https://twitter.com/stackoverflow 222. https://linkedin.com/company/stack-overflow 223. https://creativecommons.org/licenses/by-sa/3.0/ 224. https://stackoverflow.blog/2009/06/25/attribution-required/ Hidden links: 226. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 227. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 228. https://stackexchange.com/users/?tab=inbox 229. https://stackexchange.com/users/?tab=reputation 230. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 231. https://stackexchange.com/ 232. https://stackoverflow.com/ 233. https://meta.stackoverflow.com/ 234. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 235. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 236. https://stackoverflow.com/users/2708313/rpatel3001 237. https://stackoverflow.com/users/555045/harold 238. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 239. https://stackoverflow.com/users/2705055/martin-rosenau 240. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm 241. https://stackoverflow.com/q/40841057 242. https://stackoverflow.com/q/4903906 243. https://stackoverflow.com/q/8389648 244. https://stackoverflow.com/q/11497966 245. https://stackoverflow.com/q/12339972 246. https://stackoverflow.com/q/13218552 247. https://stackoverflow.com/q/18424714 248. https://stackoverflow.com/q/21324087 249. https://stackoverflow.com/q/25078285 250. https://stackoverflow.com/q/35904895 251. https://stackoverflow.com/q/50058523 252. https://stackoverflow.com/ 253. https://stackoverflow.com/questions/18447627/what-is-pc-relative-addressing-and-how-can-i-use-it-in-masm