{"id":1188,"date":"2020-11-13T01:10:09","date_gmt":"2020-11-13T01:10:09","guid":{"rendered":"http:\/\/learnlearn.uk\/alevelcs\/?page_id=1188"},"modified":"2021-05-24T01:03:09","modified_gmt":"2021-05-24T01:03:09","slug":"assembly-language-machine-code","status":"publish","type":"page","link":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/","title":{"rendered":"Assembly Language, Machine Code &#038; The Assembly Process"},"content":{"rendered":"<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Tutorial Video<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Tutorial Video<\/h3>\n<div class=\"nv-iframe-embed\">\n<div class=\"container-lazyload preview-lazyload container-youtube js-lazyload--not-loaded\"><a href=\"https:\/\/youtu.be\/BUZycVrWPa4\" class=\"lazy-load-youtube preview-lazyload preview-youtube\" data-video-title=\"Two Pass Assemblers Tutorial\" title=\"Play video &quot;Two Pass Assemblers Tutorial&quot;\">https:\/\/youtu.be\/BUZycVrWPa4<\/a><noscript>Video can&#8217;t be loaded because JavaScript is disabled: <a href=\"https:\/\/youtu.be\/BUZycVrWPa4\" title=\"Two Pass Assemblers Tutorial\">Two Pass Assemblers Tutorial (https:\/\/youtu.be\/BUZycVrWPa4)<\/a><\/noscript><\/div>\n<\/div>\n\n<\/div><h2 class=\"tabtitle\">Absolute Vs Symbolic Addressing<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Symbolic Addressing vs Absolute Addressing<\/h3>\n<p>When we write computer programs in a high level language we use Symbolic Addressing, where we refer to memory locations using identifier names for variables, functions , data structures etc.<\/p>\n<p><strong>Example program to calculate profit<\/strong><\/p>\n<pre>LDD REVENUE\r\nSUB COST\r\nSTR PROFIT<\/pre>\n<p>This program is easy for humans to read. If we used absolute addressing instead it would be very difficult to understand the purpose of the code<br \/>\nThis has two key advantages in assembly language programming:<\/p>\n<ul>\n<li>First it makes the programs easier to read as we are using words that mean something to us.<\/li>\n<li>Second it means that if the memory location where that data is stored changes we only have to change it once in our program.<\/li>\n<\/ul>\n<p>The computer cannot process these symbolic addresses so when the program is assembled all symbolic addresses are replaced with the memory address assigned to that symbol. The assembler builds a symbol table or symbolic names and the corresponding addresses in memory.<\/p>\n<p><strong>Profit program after the symbolic addresses have been swapped out<\/strong><\/p>\n<pre>LDD #4454\r\nSUB #3326\r\nSTR #4410<\/pre>\n\n<\/div><h2 class=\"tabtitle\">Resources<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Resources<\/h3>\n<p><strong>Little Man Computer<\/strong><\/p>\n<p><a href=\"http:\/\/www.yorku.ca\/sychen\/research\/LMC\/\">For seeing how assembly language is executed<\/a><\/p>\n<p><strong>Past Paper Questions<\/strong><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/view.php?id=Cambridge%20International%20Examinations%20%28CIE%29\/AS%20and%20A%20Level\/Computer%20Science%20-%209608\/2018-Oct-Nov\/9608_w18_qp_12.pdf\">N18 12 Qn3<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-advanced-as-and-a-level-computer-science-9608-2016-jun-9608-s16-qp-11-pdf\">J16 11 Qn9<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-advanced-as-and-a-level-computer-science-9608-2016-nov-9608-w16-qp-11-pdf\">N16 11 Qn8<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-advanced-as-and-a-level-computer-science-9608-2017-nov-9608-w17-qp-11-pdf\">N17 11 Qn 4c<\/a><\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/viewer\/caie\/cambridge-advanced-as-and-a-level-computer-science-9608-2018-oct-nov-9608-w18-qp-11-pdf\">N18 11 Qn4<\/a><\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tutorial Video https:\/\/youtu.be\/BUZycVrWPa4Video can&#8217;t be loaded because JavaScript is disabled: Two Pass Assemblers Tutorial (https:\/\/youtu.be\/BUZycVrWPa4) Symbolic Addressing vs Absolute Addressing When we write computer programs in a high level language we use Symbolic Addressing, where we refer to memory locations using identifier names for variables, functions , data structures etc. Example program to calculate profit&hellip;&nbsp;<a href=\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Assembly Language, Machine Code &#038; The Assembly Process<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":70,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Assembly Language, Machine Code &amp; The Assembly Process - A Level Computer Science<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Assembly Language, Machine Code &amp; The Assembly Process - A Level Computer Science\" \/>\n<meta property=\"og:description\" content=\"Tutorial Video https:\/\/youtu.be\/BUZycVrWPa4Video can&#8217;t be loaded because JavaScript is disabled: Two Pass Assemblers Tutorial (https:\/\/youtu.be\/BUZycVrWPa4) Symbolic Addressing vs Absolute Addressing When we write computer programs in a high level language we use Symbolic Addressing, where we refer to memory locations using identifier names for variables, functions , data structures etc. Example program to calculate profit&hellip;&nbsp;Read More &raquo;Assembly Language, Machine Code &#038; The Assembly Process\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\" \/>\n<meta property=\"og:site_name\" content=\"A Level Computer Science\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-24T01:03:09+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\",\"name\":\"Assembly Language, Machine Code & The Assembly Process - A Level Computer Science\",\"isPartOf\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\"},\"datePublished\":\"2020-11-13T01:10:09+00:00\",\"dateModified\":\"2021-05-24T01:03:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"A Level Computer Science Home\",\"item\":\"https:\/\/learnlearn.uk\/alevelcs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Assembly Language, Machine Code &#038; The Assembly Process\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"name\":\"A Level Computer Science\",\"description\":\"CIE Specification\",\"publisher\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\",\"name\":\"A Level Computer Science\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"contentUrl\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"width\":710,\"height\":98,\"caption\":\"A Level Computer Science\"},\"image\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Assembly Language, Machine Code & The Assembly Process - A Level Computer Science","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:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/","og_locale":"en_GB","og_type":"article","og_title":"Assembly Language, Machine Code & The Assembly Process - A Level Computer Science","og_description":"Tutorial Video https:\/\/youtu.be\/BUZycVrWPa4Video can&#8217;t be loaded because JavaScript is disabled: Two Pass Assemblers Tutorial (https:\/\/youtu.be\/BUZycVrWPa4) Symbolic Addressing vs Absolute Addressing When we write computer programs in a high level language we use Symbolic Addressing, where we refer to memory locations using identifier names for variables, functions , data structures etc. Example program to calculate profit&hellip;&nbsp;Read More &raquo;Assembly Language, Machine Code &#038; The Assembly Process","og_url":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/","og_site_name":"A Level Computer Science","article_modified_time":"2021-05-24T01:03:09+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/","url":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/","name":"Assembly Language, Machine Code & The Assembly Process - A Level Computer Science","isPartOf":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#website"},"datePublished":"2020-11-13T01:10:09+00:00","dateModified":"2021-05-24T01:03:09+00:00","breadcrumb":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/learnlearn.uk\/alevelcs\/assembly-language-machine-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"A Level Computer Science Home","item":"https:\/\/learnlearn.uk\/alevelcs\/"},{"@type":"ListItem","position":2,"name":"Assembly Language, Machine Code &#038; The Assembly Process"}]},{"@type":"WebSite","@id":"https:\/\/learnlearn.uk\/alevelcs\/#website","url":"https:\/\/learnlearn.uk\/alevelcs\/","name":"A Level Computer Science","description":"CIE Specification","publisher":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization","name":"A Level Computer Science","url":"https:\/\/learnlearn.uk\/alevelcs\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/","url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","contentUrl":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","width":710,"height":98,"caption":"A Level Computer Science"},"image":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/"}}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"learnlearnadmin","author_link":"https:\/\/learnlearn.uk\/alevelcs\/author\/learnlearnadmin\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"Tutorial Video https:\/\/youtu.be\/BUZycVrWPa4Video can&#8217;t be loaded because JavaScript is disabled: Two Pass Assemblers Tutorial (https:\/\/youtu.be\/BUZycVrWPa4) Symbolic Addressing vs Absolute Addressing When we write computer programs in a high level language we use Symbolic Addressing, where we refer to memory locations using identifier names for variables, functions , data structures etc. Example program to calculate profit&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1188"}],"collection":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/comments?post=1188"}],"version-history":[{"count":10,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1188\/revisions"}],"predecessor-version":[{"id":2178,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/1188\/revisions\/2178"}],"wp:attachment":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/media?parent=1188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}