{"id":14938,"date":"2022-12-26T16:37:54","date_gmt":"2022-12-26T16:37:54","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=14938"},"modified":"2022-12-26T19:23:44","modified_gmt":"2022-12-26T19:23:44","slug":"assembly-language-addressing-modes","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/","title":{"rendered":"Assembly Language Addressing Modes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to Assembly Language Addressing Modes<\/h2>\n\n\n\n<p>There are several Assembly Language Addressing Modes that we will discuss in this section:  Immediate, Direct, Indirect, base-pointer, and Indexed mode.  There are other modes, but these are the main modes you will use when starting out in assembly.  Depending on which processor you are programming, the names of these modes may be different, but the basic concepts are the same.<\/p><div id=\"bryce-171148355\" class=\"bryce-afterfirst bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"7728240895\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n\n<p>These addressing modes are different ways of accessing data from our machine.  We use each addressing mode for a particular purpose.  For example, if we want to load data directly to a register, you might choose immediate addressing mode.  If you need variable data from a memory location, then direct addressing is usually more practical.  On the other hand, if you are working with arrays and loops, you might choose indexed or indirect modes.<\/p>\n\n\n\n<p>Knowing which addressing modes are available helps us to plan out our program.  Let&#8217;s take a look at each of these addressing modes, and how we would use them in our project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Immediate Addressing<\/h2>\n\n\n\n<p>Immediate Addressing allows us to move a value directly into a constant.  We might use this mode for the preset of how many times a loop might execute.  Additionally, we might use this mode to set up registers we need for system calls, such as function codes, and byte lengths.  Here is an example of how we would use immediate addressing to return a result code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.section .data\n\n.section .text\n.globl _start\n_start:\n        mov $5, %ebx\n        mov $1, %eax\n        \n\tint $0x80\n<\/code><\/pre>\n\n\n\n<p>Notice the dollar sign &#8220;$&#8221; in front of the values.  In this assembler, and in this case, the dollar sign indicates the value is immediate. In other words, we are moving the numbers themselves into the registers.  We are not moving the value of a memory location.<\/p>\n\n\n\n<p>Remember, in the last post, I created a simple script that does the assembling and linking for us.  Compile and link your code.  After that, run your program.  Type &#8220;echo $?&#8221;.  You should get the result code of 5.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"491\" height=\"114\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-69.png\" alt=\"\" class=\"wp-image-14961 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-69.png 491w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-69-300x70.png 300w\" data-sizes=\"(max-width: 491px) 100vw, 491px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 491px; --smush-placeholder-aspect-ratio: 491\/114;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Direct Addressing<\/h2>\n\n\n\n<p>Direct addressing allows us to access memory.  Keep in mind that each memory cell in your computer holds a value.  We can move values out of memory cells, or into memory cells using Direct Addressing.  For example, another part of our program might have calculated the current room temperature, and stored the temperature to a specific memory location.  Here, we can access this memory location, and perform a compare to see if it&#8217;s below or above a certain value.  If so, then we can take further action, such as turning on a heater or cooling unit.<\/p>\n\n\n\n<p>Let&#8217;s take a look at a generic example with this code snippet. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.section .data\n\nmydata:\n    .long 20\n    \n.section .text\n.globl _start\n_start:\n        mov mydata, %ebx\n        mov $1, %eax\n        \n\tint $0x80<\/code><\/pre>\n\n\n\n<p>As you can see, memory location &#8220;mydata&#8221; contains the value of 20.  When we start the program, we simply move the data from &#8220;mydata&#8221;&#8216;s memory location to the %ebx register.  This will be the exit status code.  Type &#8220;echo $?&#8221;, and you will see the result code is 20.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"492\" height=\"115\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-66.png\" alt=\"\" class=\"wp-image-14956 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-66.png 492w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-66-300x70.png 300w\" data-sizes=\"(max-width: 492px) 100vw, 492px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 492px; --smush-placeholder-aspect-ratio: 492\/115;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Indirect Addressing<\/h2>\n\n\n\n<p>With Indirect Addressing, we are not getting data directly from a register. The register we specify in our project simply tells us where the data is what we need to get.  This is useful if you need to get data from different places in memory.  For example, you might have various tanks in a system, and you need to retrieve the level from different tanks at different times.<\/p>\n\n\n\n<p>Here is an example of indirect addressing:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.section .data\n\nmydata:\n    .long 16\n    \n.section .text\n.globl _start\n_start:\n        mov $mydata, %rdx\n        mov (%rdx), %ebx\n        mov $1, %eax\n        \n        int $0x80\n\n<\/code><\/pre>\n\n\n\n<p>As you can see, &#8220;mydata&#8221; holds the value of 15.  After we start our program, we move the memory location of &#8220;mydata&#8221; to the %rdx register.  In the second MOV instruction, we reference the memory location of &#8220;mydata&#8221; to get our value to load into the %ebx register.  After that, we exit the program.  Run your logic, then type &#8220;echo $?&#8221;.  You will see the result code of our program is 16.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"506\" height=\"115\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-65.png\" alt=\"\" class=\"wp-image-14955 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-65.png 506w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-65-300x68.png 300w\" data-sizes=\"(max-width: 506px) 100vw, 506px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 506px; --smush-placeholder-aspect-ratio: 506\/115;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Base Pointer Addressing<\/h2>\n\n\n\n<p>Base Pointer Addressing works in a very similar way to indirect addressing with one exception.  We add a base pointer to our starting address.  For example, let&#8217;s say that we have 20 tanks, and we have labels that represent the bottom address for each of these tanks.  The data for all of these tanks have the same structure.  For example, the  fourth value is the tank volume.  We want to get this tank volume from each tank.  In this case, not only would we specify the starting address for the tank, but we also need to apply an offset of 12 bytes.   The reason we use 12 bytes is because each long integer is 4 bytes.  For the first element, we wouldn&#8217;t apply an offset.  The second element would be an offset of 4&#8230;  likewise, the third element would be an offset of 8.   Since we want the 4th element, our offset is 12.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.section .data\n\nmydata:\n    .long 16, 14, 13, 9, 45, 76, 84\n    \n.section .text\n.globl _start\n_start:\n        mov $mydata, %rdx\n        mov 12(%rdx), %ebx\n        mov $1, %eax\n        \n\tint $0x80\n<\/code><\/pre>\n\n\n\n<p>Now, compile and run your program.  Type &#8220;echo $?&#8221;, and you will see the result code is 9.  This is because the value 9 is the fourth element of &#8220;mydata&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"512\" height=\"114\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-67.png\" alt=\"\" class=\"wp-image-14957 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-67.png 512w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-67-300x67.png 300w\" data-sizes=\"(max-width: 512px) 100vw, 512px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 512px; --smush-placeholder-aspect-ratio: 512\/114;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Indexed Addressing<\/h2>\n\n\n\n<p>Indexed Addressing also allows us to have a variable address. Typically, this will be from a common reference point.   This is very useful when we have data sets that we are operating on. For example, if we have a group of temperatures that we want to compare against a set point. We might be able to call for heat or cooling in each individual room using the same block of logic. This saves both memory, and programming time. Basically, with Indirect addressing, we look at a memory cell to determine what memory location to get data from.<\/p>\n\n\n\n<p>Consider that we have five rooms.  Each have a separate temperature sensor.  We have these temperatures already stored to consecutive memory locations.  We call this an &#8220;array&#8221;.    Let&#8217;s take a look at how we would access each of these temperatures in the example below.  We&#8217;ll assume that each temperature has the data type of &#8220;long&#8221;.<\/p>\n\n\n\n<p>Normally, we would have a loop that increments our counter register, %ecx.  However, to keep this simple, I&#8217;m just going to set %ecx to 5.   Since loop counters start at zero, a value of five would be the sixth element.  <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.section .data\n\nmydata:\n    .long 16, 14, 13, 9, 45, 76, 84\n    \n.section .text\n.globl _start\n_start:\n        mov $5, %ecx\n        mov mydata(,%rcx,4), %ebx  ### Indexed Addressing\n        mov $1, %eax\n        \n\tint $0x80\n<\/code><\/pre>\n\n\n\n<p>In this case, we start with a base address, which is &#8220;mydata&#8221;.  After that we multiply the value of %ecx by the last argument, which is 4.  We would use a multiplier of 4 if we have LONG values.  Again, this is because LONG integers consume 4 bytes each.  Since we are using the sixth element as our result code, then we should return a value of 76.  Assemble, and run your project.  Type &#8220;echo $?&#8221;, and see if you get the proper result.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"500\" height=\"93\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-68.png\" alt=\"\" class=\"wp-image-14958 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-68.png 500w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-68-300x56.png 300w\" data-sizes=\"(max-width: 500px) 100vw, 500px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/93;\" \/><\/figure>\n\n\n\n<p>For more information, visit the <a href=\"https:\/\/bryceautomation.com\/index.php\/category\/information-technology\/\">Information Technology page!<\/a><\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-3752478084\" class=\"bryce-after-content bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"4667596182\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Introduction to Assembly Language Addressing Modes There are several Assembly Language Addressing Modes that we will discuss in this section: Immediate, Direct, Indirect, base-pointer, and Indexed mode. There are other modes, but these are the main modes you will use when starting out in assembly. Depending on which processor you are programming, the names of <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":14950,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[899,789,895],"class_list":{"0":"post-14938","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-information-technology","8":"tag-addressing-modes","9":"tag-assembly-language","10":"tag-registers","11":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Assembly Language Addressing Modes - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Assembly Language Addressing Modes - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/\" \/>\n<meta property=\"og:site_name\" content=\"Bryce Automation\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ricky.bryce.7\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-26T16:37:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-26T19:23:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png\" \/>\n\t<meta property=\"og:image:width\" content=\"212\" \/>\n\t<meta property=\"og:image:height\" content=\"69\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ricky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Assembly Language Addressing Modes\",\"datePublished\":\"2022-12-26T16:37:54+00:00\",\"dateModified\":\"2022-12-26T19:23:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/\"},\"wordCount\":1099,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/image-64.png\",\"keywords\":[\"Addressing Modes\",\"Assembly Language\",\"Registers\"],\"articleSection\":[\"Information Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/\",\"name\":\"Assembly Language Addressing Modes - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/image-64.png\",\"datePublished\":\"2022-12-26T16:37:54+00:00\",\"dateModified\":\"2022-12-26T19:23:44+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/image-64.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/image-64.png\",\"width\":212,\"height\":69,\"caption\":\"Assembly Language Addressing Modes\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/12\\\/26\\\/assembly-language-addressing-modes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Assembly Language Addressing Modes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/\",\"name\":\"Bryce Automation\",\"description\":\"Automating Home and Industry...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bryceautomation.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\",\"name\":\"Ricky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"caption\":\"Ricky\"},\"sameAs\":[\"http:\\\/\\\/bryceautomation.com\",\"https:\\\/\\\/www.facebook.com\\\/ricky.bryce.7\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ricky-bryce-4367a416\\\/\"],\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/author\\\/ricky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Assembly Language Addressing Modes - Bryce Automation","description":"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/","og_locale":"en_US","og_type":"article","og_title":"Assembly Language Addressing Modes - Bryce Automation","og_description":"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-12-26T16:37:54+00:00","article_modified_time":"2022-12-26T19:23:44+00:00","og_image":[{"width":212,"height":69,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png","type":"image\/png"}],"author":"Ricky","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Assembly Language Addressing Modes","datePublished":"2022-12-26T16:37:54+00:00","dateModified":"2022-12-26T19:23:44+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/"},"wordCount":1099,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png","keywords":["Addressing Modes","Assembly Language","Registers"],"articleSection":["Information Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/","name":"Assembly Language Addressing Modes - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png","datePublished":"2022-12-26T16:37:54+00:00","dateModified":"2022-12-26T19:23:44+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Overview of Assembly Language Addressing Modes -- Immediate, Direct, Indirect, Base-Pointer, and Index addressing modes.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/12\/image-64.png","width":212,"height":69,"caption":"Assembly Language Addressing Modes"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/12\/26\/assembly-language-addressing-modes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Assembly Language Addressing Modes"}]},{"@type":"WebSite","@id":"https:\/\/bryceautomation.com\/#website","url":"https:\/\/bryceautomation.com\/","name":"Bryce Automation","description":"Automating Home and Industry...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bryceautomation.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7","name":"Ricky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","url":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","caption":"Ricky"},"sameAs":["http:\/\/bryceautomation.com","https:\/\/www.facebook.com\/ricky.bryce.7","https:\/\/www.linkedin.com\/in\/ricky-bryce-4367a416\/"],"url":"https:\/\/bryceautomation.com\/index.php\/author\/ricky\/"}]}},"_links":{"self":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/14938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/comments?post=14938"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/14938\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/14950"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=14938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=14938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=14938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}