CINXE.COM

Assembly language - Simple English Wikipedia, the free encyclopedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Assembly language - Simple English Wikipedia, the free encyclopedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )simplewikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"bc97696d-25a6-46f6-b450-58f80a513642","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Assembly_language","wgTitle":"Assembly language","wgCurRevisionId":9804333,"wgRevisionId":9804333,"wgArticleId":123020,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles lacking in-text citations","Webarchive template wayback links","Programming languages"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Assembly_language","wgRelevantArticleId":123020,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgMediaViewerOnClick":true, "wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q165436","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready", "ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.refToolbar","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions", "wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/f/f3/Motorola_6800_Assembly_Language.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1911"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Motorola_6800_Assembly_Language.png/800px-Motorola_6800_Assembly_Language.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="1274"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Motorola_6800_Assembly_Language.png/640px-Motorola_6800_Assembly_Language.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="1019"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Assembly language - Simple English Wikipedia, the free encyclopedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//simple.m.wikipedia.org/wiki/Assembly_language"> <link rel="alternate" type="application/x-wiki" title="change this page" href="/w/index.php?title=Assembly_language&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//simple.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://simple.wikipedia.org/wiki/Assembly_language"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.simple"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Assembly_language rootpage-Assembly_language skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Getting around </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Simple_start" title="About the project, what you can do, where to find things"><span>Simple start</span></a></li><li id="n-Simple-talk" class="mw-list-item"><a href="/wiki/Wikipedia:Simple_talk"><span>Simple talk</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="The list of new changes in the wiki. [r]" accesskey="r"><span>New changes</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Show any page [x]" accesskey="x"><span>Show any page</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="The place to get help"><span>Help</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//simple.wikipedia.org/wiki/Wikipedia:Contact_us"><span>Contact us</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About"><span>About Wikipedia</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-simple.svg" width="101" height="18" style="width: 6.3125em; height: 1.125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_simple.wikipedia.org&amp;uselang=en" class=""><span>Give to Wikipedia</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Assembly+language" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Assembly+language" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_simple.wikipedia.org&amp;uselang=en"><span>Give to Wikipedia</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Assembly+language" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Assembly+language" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about changes from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-Development_of_assembly_language" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Development_of_assembly_language"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Development of assembly language</span> </div> </a> <button aria-controls="toc-Development_of_assembly_language-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Development of assembly language subsection</span> </button> <ul id="toc-Development_of_assembly_language-sublist" class="vector-toc-list"> <li id="toc-Programming_in_machine_code" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Programming_in_machine_code"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Programming in machine code</span> </div> </a> <ul id="toc-Programming_in_machine_code-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Using_assembly_language_instead" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Using_assembly_language_instead"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Using assembly language instead</span> </div> </a> <ul id="toc-Using_assembly_language_instead-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Disassembly_and_debugging" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Disassembly_and_debugging"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>Disassembly and debugging</span> </div> </a> <ul id="toc-Disassembly_and_debugging-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Computer_organization" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Computer_organization"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Computer organization</span> </div> </a> <button aria-controls="toc-Computer_organization-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Computer organization subsection</span> </button> <ul id="toc-Computer_organization-sublist" class="vector-toc-list"> <li id="toc-Main_memory" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Main_memory"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Main memory</span> </div> </a> <ul id="toc-Main_memory-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-The_processor" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#The_processor"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>The processor</span> </div> </a> <ul id="toc-The_processor-sublist" class="vector-toc-list"> <li id="toc-Instructions_that_read_or_write_memory" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Instructions_that_read_or_write_memory"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.1</span> <span>Instructions that read or write memory</span> </div> </a> <ul id="toc-Instructions_that_read_or_write_memory-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Instructions_that_perform_mathematical_or_logical_operations" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Instructions_that_perform_mathematical_or_logical_operations"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.2</span> <span>Instructions that perform mathematical or logical operations</span> </div> </a> <ul id="toc-Instructions_that_perform_mathematical_or_logical_operations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Instructions_that_decide_what_the_next_instruction_is_going_to_be" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Instructions_that_decide_what_the_next_instruction_is_going_to_be"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.3</span> <span>Instructions that decide what the next instruction is going to be</span> </div> </a> <ul id="toc-Instructions_that_decide_what_the_next_instruction_is_going_to_be-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Input_and_output" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Input_and_output"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Input and output</span> </div> </a> <ul id="toc-Input_and_output-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Assembly_languages_and_portability" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Assembly_languages_and_portability"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Assembly languages and portability</span> </div> </a> <ul id="toc-Assembly_languages_and_portability-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Assembly_language_and_high-level_languages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Assembly_language_and_high-level_languages"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Assembly language and high-level languages</span> </div> </a> <ul id="toc-Assembly_language_and_high-level_languages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example_programs" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Example_programs"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Example programs</span> </div> </a> <ul id="toc-Example_programs-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Books" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Books"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Books</span> </div> </a> <button aria-controls="toc-Books-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Books subsection</span> </button> <ul id="toc-Books-sublist" class="vector-toc-list"> <li id="toc-Software" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Software"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>Software</span> </div> </a> <ul id="toc-Software-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Other_websites" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Other_websites"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Other websites</span> </div> </a> <ul id="toc-Other_websites-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Assembly language</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 71 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-71" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">71 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%84%D8%BA%D8%A9_%D8%A7%D9%84%D8%AA%D8%AC%D9%85%D9%8A%D8%B9" title="لغة التجميع – Arabic" lang="ar" hreflang="ar" data-title="لغة التجميع" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Llinguaxe_ensamblador" title="Llinguaxe ensamblador – Asturian" lang="ast" hreflang="ast" data-title="Llinguaxe ensamblador" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Assembler" title="Assembler – Azerbaijani" lang="az" hreflang="az" data-title="Assembler" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%85%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%B8%E0%A7%87%E0%A6%AE%E0%A7%8D%E0%A6%AC%E0%A6%B2%E0%A6%BF_%E0%A6%AD%E0%A6%BE%E0%A6%B7%E0%A6%BE" title="অ্যাসেম্বলি ভাষা – Bangla" lang="bn" hreflang="bn" data-title="অ্যাসেম্বলি ভাষা" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%B0%D1%81%D1%8D%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0" title="Мова асэмблера – Belarusian" lang="be" hreflang="be" data-title="Мова асэмблера" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%B0%D1%81%D1%8D%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0" title="Мова асэмблера – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Мова асэмблера" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%90%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B5%D0%BD_%D0%B5%D0%B7%D0%B8%D0%BA" title="Асемблерен език – Bulgarian" lang="bg" hreflang="bg" data-title="Асемблерен език" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Asembler" title="Asembler – Bosnian" lang="bs" hreflang="bs" data-title="Asembler" data-language-autonym="Bosanski" data-language-local-name="Bosnian" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Llenguatge_d%27assemblador" title="Llenguatge d&#039;assemblador – Catalan" lang="ca" hreflang="ca" data-title="Llenguatge d&#039;assemblador" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Jazyk_symbolick%C3%BDch_adres" title="Jazyk symbolických adres – Czech" lang="cs" hreflang="cs" data-title="Jazyk symbolických adres" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Assemblersprog" title="Assemblersprog – Danish" lang="da" hreflang="da" data-title="Assemblersprog" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Assemblersprache" title="Assemblersprache – German" lang="de" hreflang="de" data-title="Assemblersprache" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Assemblerkeel" title="Assemblerkeel – Estonian" lang="et" hreflang="et" data-title="Assemblerkeel" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Assembly_(%CE%B3%CE%BB%CF%8E%CF%83%CF%83%CE%B1_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CE%BF%CF%8D)" title="Assembly (γλώσσα προγραμματισμού) – Greek" lang="el" hreflang="el" data-title="Assembly (γλώσσα προγραμματισμού)" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Assembly_language" title="Assembly language – English" lang="en" hreflang="en" data-title="Assembly language" data-language-autonym="English" data-language-local-name="English" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Lenguaje_ensamblador" title="Lenguaje ensamblador – Spanish" lang="es" hreflang="es" data-title="Lenguaje ensamblador" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Asembla_lingvo" title="Asembla lingvo – Esperanto" lang="eo" hreflang="eo" data-title="Asembla lingvo" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Mihiztadura-lengoaia" title="Mihiztadura-lengoaia – Basque" lang="eu" hreflang="eu" data-title="Mihiztadura-lengoaia" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C" title="زبان اسمبلی – Persian" lang="fa" hreflang="fa" data-title="زبان اسمبلی" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Assembleur" title="Assembleur – French" lang="fr" hreflang="fr" data-title="Assembleur" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/Teanga_d%C3%ADolama" title="Teanga díolama – Irish" lang="ga" hreflang="ga" data-title="Teanga díolama" data-language-autonym="Gaeilge" data-language-local-name="Irish" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Linguaxe_ensambladora" title="Linguaxe ensambladora – Galician" lang="gl" hreflang="gl" data-title="Linguaxe ensambladora" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4" title="어셈블리어 – Korean" lang="ko" hreflang="ko" data-title="어셈블리어" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D4%B1%D5%BD%D5%BD%D5%A5%D5%B4%D5%A2%D5%AC%D5%A5%D6%80_%D5%AC%D5%A5%D5%A6%D5%B8%D6%82" title="Ասսեմբլեր լեզու – Armenian" lang="hy" hreflang="hy" data-title="Ասսեմբլեր լեզու" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%85%E0%A4%B8%E0%A5%87%E0%A4%AE%E0%A5%8D%E0%A4%AC%E0%A4%B2%E0%A5%80_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE" title="असेम्बली भाषा – Hindi" lang="hi" hreflang="hi" data-title="असेम्बली भाषा" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Asemblerski_jezik" title="Asemblerski jezik – Croatian" lang="hr" hreflang="hr" data-title="Asemblerski jezik" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/Asemblolinguo" title="Asemblolinguo – Ido" lang="io" hreflang="io" data-title="Asemblolinguo" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Bahasa_rakitan" title="Bahasa rakitan – Indonesian" lang="id" hreflang="id" data-title="Bahasa rakitan" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Smalam%C3%A1l" title="Smalamál – Icelandic" lang="is" hreflang="is" data-title="Smalamál" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Linguaggio_assembly" title="Linguaggio assembly – Italian" lang="it" hreflang="it" data-title="Linguaggio assembly" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%A1%D7%A3" title="שפת סף – Hebrew" lang="he" hreflang="he" data-title="שפת סף" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%90%E1%83%A1%E1%83%94%E1%83%9B%E1%83%91%E1%83%9A%E1%83%98" title="ასემბლი – Georgian" lang="ka" hreflang="ka" data-title="ასემბლი" data-language-autonym="ქართული" data-language-local-name="Georgian" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%BB%D0%B5%D1%83_%D1%82%D1%96%D0%BB%D1%96" title="Ассемблерлеу тілі – Kazakh" lang="kk" hreflang="kk" data-title="Ассемблерлеу тілі" data-language-autonym="Қазақша" data-language-local-name="Kazakh" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Assembly" title="Assembly – Kurdish" lang="ku" hreflang="ku" data-title="Assembly" data-language-autonym="Kurdî" data-language-local-name="Kurdish" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Lingua_coactionis" title="Lingua coactionis – Latin" lang="la" hreflang="la" data-title="Lingua coactionis" data-language-autonym="Latina" data-language-local-name="Latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Asamblervaloda" title="Asamblervaloda – Latvian" lang="lv" hreflang="lv" data-title="Asamblervaloda" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Asemblerio_kalba" title="Asemblerio kalba – Lithuanian" lang="lt" hreflang="lt" data-title="Asemblerio kalba" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/Assembly" title="Assembly – Lombard" lang="lmo" hreflang="lmo" data-title="Assembly" data-language-autonym="Lombard" data-language-local-name="Lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Assembly" title="Assembly – Hungarian" lang="hu" hreflang="hu" data-title="Assembly" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%85%E0%B4%B8%E0%B5%86%E0%B4%82%E0%B4%AC%E0%B5%8D%E0%B4%B2%E0%B4%BF_%E0%B4%AD%E0%B4%BE%E0%B4%B7" title="അസെംബ്ലി ഭാഷ – Malayalam" lang="ml" hreflang="ml" data-title="അസെംബ്ലി ഭാഷ" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Bahasa_himpunan" title="Bahasa himpunan – Malay" lang="ms" hreflang="ms" data-title="Bahasa himpunan" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mwl mw-list-item"><a href="https://mwl.wikipedia.org/wiki/Lenguaige_de_montaige" title="Lenguaige de montaige – Mirandese" lang="mwl" hreflang="mwl" data-title="Lenguaige de montaige" data-language-autonym="Mirandés" data-language-local-name="Mirandese" class="interlanguage-link-target"><span>Mirandés</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80_%D1%85%D1%8D%D0%BB" title="Ассемблер хэл – Mongolian" lang="mn" hreflang="mn" data-title="Ассемблер хэл" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Assembleertaal" title="Assembleertaal – Dutch" lang="nl" hreflang="nl" data-title="Assembleertaal" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E8%A8%80%E8%AA%9E" title="アセンブリ言語 – Japanese" lang="ja" hreflang="ja" data-title="アセンブリ言語" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Assembler" title="Assembler – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Assembler" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Assembler" title="Assembler – Uzbek" lang="uz" hreflang="uz" data-title="Assembler" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%85%E0%A8%B8%E0%A9%88%E0%A8%82%E0%A8%AC%E0%A8%B2%E0%A9%80_%E0%A8%AD%E0%A8%BE%E0%A8%B8%E0%A8%BC%E0%A8%BE" title="ਅਸੈਂਬਲੀ ਭਾਸ਼ਾ – Punjabi" lang="pa" hreflang="pa" data-title="ਅਸੈਂਬਲੀ ਭਾਸ਼ਾ" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="Punjabi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Linguagem_assembly" title="Linguagem assembly – Portuguese" lang="pt" hreflang="pt" data-title="Linguagem assembly" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Limbaj_de_asamblare" title="Limbaj de asamblare – Romanian" lang="ro" hreflang="ro" data-title="Limbaj de asamblare" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0" title="Язык ассемблера – Russian" lang="ru" hreflang="ru" data-title="Язык ассемблера" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/Assemmly_leid" title="Assemmly leid – Scots" lang="sco" hreflang="sco" data-title="Assemmly leid" data-language-autonym="Scots" data-language-local-name="Scots" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Assembly" title="Assembly – Albanian" lang="sq" hreflang="sq" data-title="Assembly" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/%E0%B6%87%E0%B7%83%E0%B7%99%E0%B6%B8%E0%B7%8A%E0%B6%B6%E0%B7%8A%E0%B6%BD%E0%B7%92_%E0%B6%B7%E0%B7%8F%E0%B7%82%E0%B7%8F%E0%B7%80" title="ඇසෙම්බ්ලි භාෂාව – Sinhala" lang="si" hreflang="si" data-title="ඇසෙම්බ්ලි භාෂාව" data-language-autonym="සිංහල" data-language-local-name="Sinhala" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Jazyk_symbolick%C3%BDch_in%C5%A1trukci%C3%AD" title="Jazyk symbolických inštrukcií – Slovak" lang="sk" hreflang="sk" data-title="Jazyk symbolických inštrukcií" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Zbirni_jezik" title="Zbirni jezik – Slovenian" lang="sl" hreflang="sl" data-title="Zbirni jezik" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%90%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80" title="Асемблер – Serbian" lang="sr" hreflang="sr" data-title="Асемблер" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Asemblerski_jezik" title="Asemblerski jezik – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Asemblerski jezik" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Assembly_(ohjelmointikieli)" title="Assembly (ohjelmointikieli) – Finnish" lang="fi" hreflang="fi" data-title="Assembly (ohjelmointikieli)" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Assembler" title="Assembler – Swedish" lang="sv" hreflang="sv" data-title="Assembler" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%85%E0%B0%B8%E0%B1%86%E0%B0%82%E0%B0%AC%E0%B1%8D%E0%B0%B2%E0%B1%80_%E0%B0%AD%E0%B0%BE%E0%B0%B7" title="అసెంబ్లీ భాష – Telugu" lang="te" hreflang="te" data-title="అసెంబ్లీ భాష" data-language-autonym="తెలుగు" data-language-local-name="Telugu" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%81%E0%B8%AD%E0%B8%AA%E0%B9%80%E0%B8%8B%E0%B8%A1%E0%B8%9A%E0%B8%A5%E0%B8%B5" title="ภาษาแอสเซมบลี – Thai" lang="th" hreflang="th" data-title="ภาษาแอสเซมบลี" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B8" title="Ассембли – Tajik" lang="tg" hreflang="tg" data-title="Ассембли" data-language-autonym="Тоҷикӣ" data-language-local-name="Tajik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Assembly" title="Assembly – Turkish" lang="tr" hreflang="tr" data-title="Assembly" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%B0%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80%D0%B0" title="Мова асемблера – Ukrainian" lang="uk" hreflang="uk" data-title="Мова асемблера" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C_%D8%B2%D8%A8%D8%A7%D9%86" title="اسمبلی زبان – Urdu" lang="ur" hreflang="ur" data-title="اسمبلی زبان" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/H%E1%BB%A3p_ng%E1%BB%AF" title="Hợp ngữ – Vietnamese" lang="vi" hreflang="vi" data-title="Hợp ngữ" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80" title="汇编语言 – Wu" lang="wuu" hreflang="wuu" data-title="汇编语言" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E7%B5%84%E5%90%88%E8%AA%9E%E8%A8%80" title="組合語言 – Cantonese" lang="yue" hreflang="yue" data-title="組合語言" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80" title="汇编语言 – Chinese" lang="zh" hreflang="zh" data-title="汇编语言" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-dtp mw-list-item"><a href="https://dtp.wikipedia.org/wiki/Boros_Simbong" title="Boros Simbong – Central Dusun" lang="dtp" hreflang="dtp" data-title="Boros Simbong" data-language-autonym="Kadazandusun" data-language-local-name="Central Dusun" class="interlanguage-link-target"><span>Kadazandusun</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q165436#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Change links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Assembly_language" title="View the content page [c]" accesskey="c"><span>Page</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Talk:Assembly_language&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="Discussion about the content page (not yet started) [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Assembly_language"><span>Read</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;veaction=edit" title="Edit this page [v]" accesskey="v"><span>Change</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Change source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Assembly_language"><span>Read</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;veaction=edit" title="Edit this page [v]" accesskey="v"><span>Change</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Change source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Assembly_language" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Assembly_language" rel="nofollow" title="New changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;oldid=9804333" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Assembly_language&amp;id=9804333&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fsimple.wikipedia.org%2Fwiki%2FAssembly_language"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fsimple.wikipedia.org%2Fwiki%2FAssembly_language"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Special:Book&amp;bookcmd=book_creator&amp;referer=Assembly+language"><span>Make a book</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Assembly_language&amp;action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Assembly_language&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Page for printing</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Assembly_languages" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q165436" title="Link to connected data repository item [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Simple English Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r8538344">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}</style><table class="box-No_footnotes plainlinks metadata ambox ambox-style" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Text_document_with_red_question_mark.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Text_document_with_red_question_mark.svg/40px-Text_document_with_red_question_mark.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Text_document_with_red_question_mark.svg/60px-Text_document_with_red_question_mark.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Text_document_with_red_question_mark.svg/80px-Text_document_with_red_question_mark.svg.png 2x" data-file-width="48" data-file-height="48" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article has a <a href="/wiki/Wikipedia:Citing_sources" title="Wikipedia:Citing sources">list of references</a> or <a href="/wiki/Wikipedia:External_links" class="mw-redirect" title="Wikipedia:External links">other websites</a>, but <b>its sources are not clear because it does not have <a href="/wiki/Wikipedia:Citing_sources#Inline_citations" title="Wikipedia:Citing sources">inline citations</a></b>.<span class="hide-when-compact"> Please help to improve this article by adding more citations to the body of the article <a href="https://en.wikipedia.org/wiki/Wikipedia:When_to_cite" class="extiw" title="en:Wikipedia:When to cite">where they should be</a>.</span> <span class="date-container"><i>(<span class="date">August 2009</span>)</i></span></div></td></tr></tbody></table> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Motorola_6800_Assembly_Language.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Motorola_6800_Assembly_Language.png/220px-Motorola_6800_Assembly_Language.png" decoding="async" width="220" height="350" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Motorola_6800_Assembly_Language.png/330px-Motorola_6800_Assembly_Language.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Motorola_6800_Assembly_Language.png/440px-Motorola_6800_Assembly_Language.png 2x" data-file-width="1013" data-file-height="1613" /></a><figcaption></figcaption></figure> <p>An <b>assembly language</b> is a <a href="/wiki/Programming_language" title="Programming language">programming language</a> that can be used to directly tell the <a href="/wiki/Computer" title="Computer">computer</a> what to do. An assembly language is almost exactly like the <a href="/wiki/Machine_code" title="Machine code">machine code</a> that a computer can understand, except that it uses words in place of numbers. A computer cannot really understand an assembly program directly. However, it can easily change the program into machine code by replacing the words of the program with the numbers that they stand for. A program that does that is called an <a href="/wiki/Assembler" title="Assembler">assembler</a>. </p><p>Programs written in assembly language are usually made of <i><a href="/wiki/Instruction_(computer_science)" title="Instruction (computer science)">instructions</a></i>, which are small tasks that the computer performs when it is running the program. They are called instructions because the programmer uses them to instruct the computer what to do. The part of the computer that follows the instructions is the <a href="/wiki/Processor" class="mw-redirect" title="Processor">processor</a>. </p><p>The assembly language of a computer is a <b>low-level</b> language, which means that it can only be used to do the simple tasks that a computer can understand directly. In order to perform more <a href="/wiki/Complexity" title="Complexity">complex</a> tasks, one must tell the computer each of the simple tasks that are part of the complex task. For example, a computer does not understand how to print a <a href="/wiki/Sentence" title="Sentence">sentence</a> on its screen. Instead, a program written in assembly must tell it how to do all of the small steps that are involved in printing the sentence. </p><p>Such an assembly program would be composed of many, many instructions, that together do something that seems very simple and basic to a human. This makes it hard for humans to read an assembly program. In contrast, a <b>high-level</b> programming language may have a single instruction such as <b>PRINT</b> <i>"Hello, world!"</i> that will tell the computer to perform all of the small tasks for you. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Development_of_assembly_language">Development of assembly language</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=1" title="Change section: Development of assembly language" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=1" title="Edit section&#039;s source code: Development of assembly language"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>When <a href="/wiki/Computer_scientist" class="mw-redirect" title="Computer scientist">computer scientists</a> first built programmable machines, they <a href="/wiki/Computer_program" title="Computer program">programmed</a> them directly in machine code, which is a series of numbers that instructed the computer what to do. Writing machine language was very hard to do and took a long time, so eventually assembly language was made. Assembly language is easier for a human to read and can be written faster, but it is still much harder for a human to use than a <a href="/wiki/High-level_programming_language" title="High-level programming language">high-level programming language</a> which tries to mimic human language. </p> <div class="mw-heading mw-heading3"><h3 id="Programming_in_machine_code">Programming in machine code</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=2" title="Change section: Programming in machine code" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=2" title="Edit section&#039;s source code: Programming in machine code"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>To program in <a href="/wiki/Machine_code" title="Machine code">machine code</a>, the programmer needs to know what each instruction looks like in <a href="/wiki/Binary" title="Binary">binary</a> (or <a href="/wiki/Hexadecimal" title="Hexadecimal">hexadecimal</a>). Although it is easy for a computer to quickly figure out what machine code means, it is hard for a programmer. Each instruction can have several forms, all of which just look like a bunch of numbers to people. Any mistake that someone makes while writing machine code will only be noticed when the computer does the wrong thing. Figuring out the mistake is hard because most people cannot tell what machine code means by looking at it. An example of what machine code looks like: </p> <blockquote> <p>05 2A 00 </p> </blockquote> <p>This hexadecimal machine code tells an <a href="/wiki/X86" title="X86">x86</a> <a href="/w/index.php?title=Computer_processor&amp;action=edit&amp;redlink=1" class="new" title="Computer processor (not yet started)">computer processor</a> to add 42 to the <a href="/wiki/Accumulator_(computing)" title="Accumulator (computing)">accumulator</a>. It is very difficult for a person to read and understand it even if that person knows machine code. </p> <div class="mw-heading mw-heading3"><h3 id="Using_assembly_language_instead">Using assembly language instead</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=3" title="Change section: Using assembly language instead" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=3" title="Edit section&#039;s source code: Using assembly language instead"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>With assembly language, each instruction can be written as a short word, called a <i><a href="/wiki/Mnemonic" title="Mnemonic">mnemonic</a></i>, followed by other things like numbers or other short words. The mnemonic is used so that the programmer does not have to remember the exact numbers in machine code needed to tell the computer to do something. Examples of mnemonics in assembly language include <i>add</i>, which adds data, and <i>mov</i>, which moves data from one place to another. Because 'mnemonic' is an uncommon word, the phrase <i>instruction type</i> or just <i>instruction</i> is sometimes used instead, often incorrectly. The words and numbers after the first word give more information about what to do. For instance, things following an <i>add</i> might be what two things to add together and the things following <i>mov</i> say what to move and where to put it. </p><p>For example, the machine code in the previous section (05 2A 00) can be written in assembly as: </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">add</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="mi">42</span> </pre></div> <p>Assembly language also allows programmers to write the actual data the program uses in easier ways. Most assembly languages have support for easily making numbers and text. In machine code, each different type of number like <a href="/wiki/Positive_number" title="Positive number">positive</a>, <a href="/wiki/Negative_number" title="Negative number">negative</a> or <a href="/wiki/Decimal" title="Decimal">decimal</a>, would have to be manually converted into binary and text would have to be defined one letter at a time, as numbers. </p><p>Assembly language provides what is called an <a href="/wiki/Abstraction" title="Abstraction">abstraction</a> of machine code. When using assembly, programmers do not need to know the details of what numbers mean to the computer, the assembler figures that out instead. Assembly language still lets the programmer use all the features of the processor that they could with machine code. In this sense, assembly language has a very good, rare trait: it has the same ability to express things as the thing it is abstracting (machine code) while being much easier to use. Because of this, machine code is almost never used as a programming language. </p> <div class="mw-heading mw-heading3"><h3 id="Disassembly_and_debugging">Disassembly and debugging</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=4" title="Change section: Disassembly and debugging" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=4" title="Edit section&#039;s source code: Disassembly and debugging"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>When programs are finished, they have already been transformed into machine code so that the processor can actually run them. Sometimes, however, if the program has a <a href="/wiki/Software_bug" title="Software bug">bug</a> (mistake) in it, programmers will want to be able to tell what each part of the machine code is doing. <a href="/w/index.php?title=Disassemblers&amp;action=edit&amp;redlink=1" class="new" title="Disassemblers (not yet started)">Disassemblers</a> are programs that help programmers do that by transforming the machine code of the program back into assembly language, which is much easier to understand. Disassemblers, which turn machine code into assembly language, do the opposite of assemblers, which turn assembly language into machine code. </p> <div class="mw-heading mw-heading2"><h2 id="Computer_organization">Computer organization</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=5" title="Change section: Computer organization" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=5" title="Edit section&#039;s source code: Computer organization"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>An understanding of how computers are organized, how they seem to work at a very low level, is needed to understand how an assembly language program works. At the simplest level, computers have three main parts: </p> <ol><li>main memory or <a href="/wiki/Random_access_memory" class="mw-redirect" title="Random access memory">RAM</a> which holds data and instructions,</li> <li>a processor, which processes the data by executing the instructions, and</li> <li><a href="/wiki/Input/output" title="Input/output">input</a> and output (sometimes shortened to I/O), which allow the computer to communicate with the outside world and store data outside of main memory so it can get the data back later.</li></ol> <div class="mw-heading mw-heading3"><h3 id="Main_memory">Main memory</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=6" title="Change section: Main memory" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=6" title="Edit section&#039;s source code: Main memory"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In most computers, memory is divided up into <a href="/wiki/Byte" title="Byte">bytes</a>. Each byte contains 8 <a href="/wiki/Bit" class="mw-disambig" title="Bit">bits</a>. Each byte in memory also has an <i>address</i> which is a number that says where the byte is in memory. The first byte in memory has an address of 0, the next one has an address of 1, and so on. Dividing memory into bytes makes it <i>byte addressable</i> because each byte gets a unique address. Addresses of byte memories cannot be used to refer to a single bit of a byte. A byte is the smallest piece of memory that can be addressed. </p><p>Even though an address refers to a particular byte in memory, processors allow for using several bytes of memory in a row. The most common use of this feature is to use either 2 or 4 bytes in a row to represent a number, usually an <a href="/wiki/Integer" title="Integer">integer</a>. Single bytes are sometimes also used to represent integers, but because they are only 8 bits long, they can only hold 2<sup>8</sup> or 256 different possible values. Using 2 or 4 bytes in a row raises the number of different possible values to be 2<sup>16</sup>, 65536 or 2<sup>32</sup>, 4294967296, respectively. </p><p>When a program uses a byte or a number of bytes in a row to represent something like a letter, number, or anything else, those bytes are called an <i>object</i> because they are all part of the same thing. Even though objects are all stored in identical bytes of memory, they are treated as though they have a 'type', which says how the bytes should be understood: either as an integer or a <a href="/wiki/Character_(computing)" title="Character (computing)">character</a> or some other type (like a non-integer value). Machine code can also be thought of as a type that is interpreted as instructions. The notion of a type is very, very important because it defines what things can and can’t be done to the object and how to interpret the bytes of the object. For instance, it is not valid to store a <a href="/wiki/Negative_number" title="Negative number">negative number</a> in a positive number object and it is not valid to store a fraction in an integer. </p><p>An address that points to (is the address of) a multi-byte object is the address to the first byte of that object – the byte that has the lowest address. As an aside, one important thing to note is that you can’t tell what the type of an object is - or even its size - by its address. In fact, you can’t even tell what type an object is by looking at it. An assembly language program needs to keep track of which memory addresses hold which objects, and how big those objects are. A program that does so is <i>type safe</i> because it only does things to objects that are safe to do on their type. A program that doesn’t will probably not work properly. Note that most programs do not actually explicitly store what the type of an object is, they just access objects consistently - the same object is always treated as the same type. </p> <div class="mw-heading mw-heading3"><h3 id="The_processor">The processor</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=7" title="Change section: The processor" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=7" title="Edit section&#039;s source code: The processor"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The processor runs (executes) instructions, which are stored as machine code in main memory. As well as being able to access memory for storage, most processors have a few small, fast, fixed-size spaces for holding objects that are currently being worked with. These spaces are called <i><a href="/wiki/Register" class="mw-disambig" title="Register">registers</a></i>. Processors usually execute three types of instructions, although some instructions can be a combination of these types. Below are some examples of each type in x86 assembly language. </p> <div class="mw-heading mw-heading4"><h4 id="Instructions_that_read_or_write_memory">Instructions that read or write memory</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=8" title="Change section: Instructions that read or write memory" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=8" title="Edit section&#039;s source code: Instructions that read or write memory"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The following x86 assembly language instruction reads (loads) a 2-byte object from the byte at address 4096 (0x1000 in <a href="/wiki/Hexadecimal" title="Hexadecimal">hexadecimal</a>) into a 16-bit register called 'ax': </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="mi">1000</span><span class="no">h</span><span class="p">]</span> </pre></div> <p>In this assembly language, square brackets around a number (or a register name) mean that the number should be used as an address to the data that should be used. The use of an address to point to data is called <a href="/w/index.php?title=Indirection&amp;action=edit&amp;redlink=1" class="new" title="Indirection (not yet started)">indirection</a>. In this next example, without the square brackets, another register, bx, actually gets the value 20 loaded into it. </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">bx</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span> </pre></div> <p>Because no indirection was used, the actual value itself was put into the register. </p><p>If the <a href="/wiki/Operand" title="Operand">operands</a> (the things that come after the mnemonic), appear in the <a href="/w/index.php?title=Reverse_order&amp;action=edit&amp;redlink=1" class="new" title="Reverse order (not yet started)">reverse order</a>, an instruction that loads something from memory instead writes it to memory: </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="p">[</span><span class="mi">1000</span><span class="no">h</span><span class="p">],</span><span class="w"> </span><span class="no">bx</span> </pre></div> <p>Here, the memory at address 1000h gets the value of bx. If this example is executed right after the previous one, the 2 bytes at 1000h and 1001h will be a 2 byte integer with the value of 20. </p> <div class="mw-heading mw-heading4"><h4 id="Instructions_that_perform_mathematical_or_logical_operations">Instructions that perform mathematical or logical operations</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=9" title="Change section: Instructions that perform mathematical or logical operations" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=9" title="Edit section&#039;s source code: Instructions that perform mathematical or logical operations"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Some instructions do things like <a href="/wiki/Subtraction" title="Subtraction">subtraction</a> or <a href="/w/index.php?title=Logical_operation&amp;action=edit&amp;redlink=1" class="new" title="Logical operation (not yet started)">logical operations</a> like <i>not</i>: </p><p>The machine code example earlier in this article would be this in assembly language: </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">add</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="mi">42</span> </pre></div> <p>Here, 42 and ax are added together and the result is stored back in ax. In <a href="/wiki/X86_assembly" class="mw-redirect" title="X86 assembly">x86 assembly</a> it is also possible to combine a memory access and mathematical operation like this: </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">add</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="mi">1000</span><span class="no">h</span><span class="p">]</span> </pre></div> <p>This instruction adds the value of the 2 byte integer stored at 1000h to ax and stores the answer in ax. </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">or</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="no">bx</span> </pre></div> <p>This instruction computes the <a href="/wiki/Boolean_algebra#OR_gate" title="Boolean algebra">or</a> of the contents of the registers ax and bx and stores the result back into ax. </p> <div class="mw-heading mw-heading4"><h4 id="Instructions_that_decide_what_the_next_instruction_is_going_to_be">Instructions that decide what the next instruction is going to be</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=10" title="Change section: Instructions that decide what the next instruction is going to be" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=10" title="Edit section&#039;s source code: Instructions that decide what the next instruction is going to be"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Usually, instructions are executed in the order they appear in memory, which is the order they are in the assembly code. The processor just executes them one after another. However, in order for processors to do complicated things, they need to execute different instructions based on what the data they were given is. The ability of processors to execute different instructions depending on something's outcome is called <i>branching</i>. Instructions that decide what the next instruction should be are called <i>branch instructions</i>. </p><p>In this example, suppose someone wants to calculate the amount of <a href="/wiki/Paint" title="Paint">paint</a> they will need to paint a square with a certain side length. The paint store will not sell them any less than amount of paint needed to paint a 100 x 100 square. </p><p>To figure out the amount of paint they will need to get based on the length of the square they want to paint, they come up with this set of steps: </p> <ul><li>subtract 100 from the side length</li> <li>if the answer is less than zero, set the side length to 100</li> <li>multiply the side length by itself</li></ul> <p>That <a href="/wiki/Algorithm" title="Algorithm">algorithm</a> can be expressed in the following code where ax is the side length. </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">bx</span><span class="p">,</span><span class="w"> </span><span class="no">ax</span> <span class="w"> </span><span class="nf">sub</span><span class="w"> </span><span class="no">bx</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span> <span class="w"> </span><span class="nf">jge</span><span class="w"> </span><span class="no">continue</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span> <span class="nl">continue:</span> <span class="w"> </span><span class="nf">mul</span><span class="w"> </span><span class="no">ax</span> </pre></div> <p>This example introduces several new things, but the first two instructions are familiar. They copy the value of ax into bx and then subtract 100 from bx. </p><p>One of the new things in this example is called a label, a concept found in assembly languages in general. Labels can be anything the programmer wants (unless it is the name of an instruction, which would confuse the assembler). In this example, the label is 'continue'. It is interpreted by the assembler as the address of an instruction. In this case, it is the address of mult ax. </p><p>Another new concept is that of flags. On x86 processors, many instructions set 'flags' in the processor that can be used by the next instruction to decide what to do. In this case, if bx was less than 100, sub will set a flag that says the result was less than zero. </p><p>The next instruction is jge which is short for 'jump if greater than or equal to'. It is a branch instruction. If the flags in the processor specify that the result was greater than or equal to zero, instead of just going to the next instruction the processor will jump to the instruction at the continue label, which is <i>mul ax</i>. </p><p>This example works fine, but it is not what most programmers would write. The subtract <a href="/wiki/Instruction_set" title="Instruction set">instruction set</a> the flag correctly, but it also changes the value it operates on, which required the ax to be copied into bx. Most assembly languages allow for comparison instruction that do not change any of the arguments they are passed, but still set the flags properly and x86 assembly is no exception. </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="nf">cmp</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span> <span class="w"> </span><span class="nf">jge</span><span class="w"> </span><span class="no">continue</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span> <span class="nl">continue:</span> <span class="w"> </span><span class="nf">mul</span><span class="w"> </span><span class="no">ax</span> </pre></div> <p>Now, instead of subtracting 100 from ax, seeing if that number is less than zero, and assigning it back to ax, ax is left unchanged. The flags are still set the same way, and the jump is still taken in the same situations. </p> <div class="mw-heading mw-heading3"><h3 id="Input_and_output">Input and output</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=11" title="Change section: Input and output" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=11" title="Edit section&#039;s source code: Input and output"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>While input and output are a fundamental part of computing, there is no one way they are done in assembly language. This is because the way I/O works depends on the set up of the computer and the <a href="/wiki/Operating_system" title="Operating system">operating system</a> it is running, not just what kind of processor it has. In the example section below, the Hello World example uses <a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> operating system calls and the example after it uses <a href="/wiki/BIOS" title="BIOS">BIOS</a> calls. </p><p>It is possible to do I/O in assembly language. Assembly language can generally express anything that a computer is capable of doing. However, even though there are instructions to add and branch in assembly language that will always do the same thing there are no instructions in assembly language that always do I/O. </p><p>The way that I/O works is not part of any assembly language because it is not part of how the processor works. </p> <div class="mw-heading mw-heading2"><h2 id="Assembly_languages_and_portability">Assembly languages and portability</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=12" title="Change section: Assembly languages and portability" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=12" title="Edit section&#039;s source code: Assembly languages and portability"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Even though assembly language is not directly run by the processor - machine code is, it still has a lot to do with it. Each <a href="/w/index.php?title=Processor_family&amp;action=edit&amp;redlink=1" class="new" title="Processor family (not yet started)">processor family</a> supports different features, instructions, rules for what the instructions can do, and rules for what combination of instructions are allowed where. Because of this, different types of processors still need different assembly languages. </p><p>Because each version of assembly language is tied to a processor family, it lacks something called <i>portability</i>. Something that has portability or is portable can be easily transferred from one type of computer to another. While other types of programming languages are portable, assembly language, in general, is not. </p> <div class="mw-heading mw-heading2"><h2 id="Assembly_language_and_high-level_languages">Assembly language and high-level languages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=13" title="Change section: Assembly language and high-level languages" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=13" title="Edit section&#039;s source code: Assembly language and high-level languages"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Although assembly language allows for an easy way to use all the processor's features, it is not used for modern software projects for several reasons: </p> <ul><li>It takes a lot of effort to express a simple program in assembly.</li> <li>Although not as <a href="/w/index.php?title=Error-prone&amp;action=edit&amp;redlink=1" class="new" title="Error-prone (not yet started)">error-prone</a> as machine code, assembly language still offers very little protection against errors. Almost all assembly languages do not enforce type safety.</li> <li>Assembly language does not promote good programming practices like <a href="/w/index.php?title=Modularity&amp;action=edit&amp;redlink=1" class="new" title="Modularity (not yet started)">modularity</a>.</li> <li>While each individual assembly language instruction is easy to understand, it is hard to tell what the intent of the programmer was who wrote it. In fact, the assembly language of a program is so hard to understand that companies do not worry about people dissassembling (getting the assembly language of) their programs.</li></ul> <p>As a result of these drawbacks, high-level languages like <a href="/wiki/Pascal" title="Pascal">Pascal</a>, <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, and <a href="/wiki/C%2B%2B" title="C++">C++</a> are used for most projects instead. They allow programmers to express their ideas more directly instead of having to worry about telling the processor what to do every step of the way. They're called high-level because the ideas the programmer can express in the same amount code are more complicated. </p><p>Programmers writing code in compiled high level languages use a program called a <a href="/wiki/Compiler" title="Compiler">compiler</a> to transform their code into assembly language. Compilers are much harder to write than assemblers are. Also, high-level languages do not always allow programmers to use all the features of the processor. This is because high-level languages are designed to support all processor families. Unlike assembly languages, that only support one type of processor, high-level languages are portable. </p><p>Even though compilers are more complicated than assemblers, decades of making and researching compilers has made them very good. Now, there is not much reason to use assembly language anymore for most projects, because compilers can usually figure out how to express programs in assembly language as well or better than programmers. </p> <div class="mw-heading mw-heading2"><h2 id="Example_programs">Example programs</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=14" title="Change section: Example programs" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=14" title="Edit section&#039;s source code: Example programs"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <i><a href="/wiki/Hello_world_program" title="Hello world program">Hello, world!</a></i> program written in x86 assembly: </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">adosseg</span> <span class="na">.model</span><span class="w"> </span><span class="no">small</span> <span class="na">.stack</span><span class="w"> </span><span class="mi">100</span><span class="no">h</span> <span class="na">.data</span> <span class="nf">hello_message</span><span class="w"> </span><span class="no">db</span><span class="w"> </span><span class="err">&#39;</span><span class="no">Hello</span><span class="p">,</span><span class="w"> </span><span class="no">World</span><span class="p">!</span><span class="err">&#39;</span><span class="p">,</span><span class="mi">0</span><span class="no">dh</span><span class="p">,</span><span class="mi">0</span><span class="no">ah</span><span class="p">,</span><span class="err">&#39;</span><span class="no">$</span><span class="err">&#39;</span> <span class="na">.code</span> <span class="nf">main</span><span class="w"> </span><span class="no">proc</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="err">@</span><span class="no">data</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ds</span><span class="p">,</span><span class="no">ax</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ah</span><span class="p">,</span><span class="mi">9</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">dx</span><span class="p">,</span><span class="no">offset</span><span class="w"> </span><span class="no">hello_message</span> <span class="w"> </span><span class="nf">int</span><span class="w"> </span><span class="mi">21</span><span class="no">h</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="mi">4</span><span class="no">C00h</span> <span class="w"> </span><span class="nf">int</span><span class="w"> </span><span class="mi">21</span><span class="no">h</span> <span class="nf">main</span><span class="w"> </span><span class="no">endp</span> <span class="nf">end</span><span class="w"> </span><span class="no">main.</span> </pre></div> <p>A function that prints a number to the screen using <a href="/wiki/BIOS" title="BIOS">BIOS</a> interrupts written in NASM x86 assembly. Modular code is possible to write in assembly, but it takes extra effort. Note that anything that comes after a <a href="/wiki/Semicolon" title="Semicolon">semicolon</a> on a line is a comment and is ignored by the assembler. Putting comments in assembly language code is very important because large assembly language programs are so hard to understand. </p> <div class="mw-highlight mw-highlight-lang-asm mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">; void printn(int number, int base);</span> <span class="nl">printn:</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">bp</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">bp</span><span class="p">,</span><span class="w"> </span><span class="no">sp</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">ax</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">bx</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">cx</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">dx</span> <span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">si</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">si</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">bp</span><span class="w"> </span><span class="err">+</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span><span class="w"> </span><span class="c1">; number</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">cx</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">bp</span><span class="w"> </span><span class="err">+</span><span class="w"> </span><span class="mi">6</span><span class="p">]</span><span class="w"> </span><span class="c1">; base</span> <span class="nl">gloop:</span><span class="w"> </span><span class="nf">inc</span><span class="w"> </span><span class="no">si</span><span class="w"> </span><span class="c1">; length of string</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">dx</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1">; zero dx</span> <span class="w"> </span><span class="nf">div</span><span class="w"> </span><span class="no">cx</span><span class="w"> </span><span class="c1">; divide by base</span> <span class="w"> </span><span class="nf">cmp</span><span class="w"> </span><span class="no">dx</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="c1">; is it ge 10?</span> <span class="w"> </span><span class="nf">jge</span><span class="w"> </span><span class="no">num</span> <span class="w"> </span><span class="nf">add</span><span class="w"> </span><span class="no">dx</span><span class="p">,</span><span class="w"> </span><span class="err">&#39;</span><span class="mi">0</span><span class="err">&#39;</span><span class="w"> </span><span class="c1">; add zero to dx</span> <span class="w"> </span><span class="nf">jmp</span><span class="w"> </span><span class="no">anum</span> <span class="nl">num:</span><span class="w"> </span><span class="nf">add</span><span class="w"> </span><span class="no">dx</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="err">&#39;</span><span class="no">A</span><span class="err">&#39;</span><span class="p">-</span><span class="w"> </span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="c1">; hex value, add &#39;A&#39; to dx - 10.</span> <span class="nl">anum:</span><span class="w"> </span><span class="nf">push</span><span class="w"> </span><span class="no">dx</span><span class="w"> </span><span class="c1">; put dx onto stack.</span> <span class="w"> </span><span class="nf">cmp</span><span class="w"> </span><span class="no">ax</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1">; should we continue?</span> <span class="w"> </span><span class="nf">jne</span><span class="w"> </span><span class="no">gloop</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">bx</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="no">h</span><span class="w"> </span><span class="c1">; for interrupt</span> <span class="nl">tloop:</span><span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">ax</span><span class="w"> </span><span class="c1">; get its value</span> <span class="w"> </span><span class="nf">mov</span><span class="w"> </span><span class="no">ah</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="no">eh</span><span class="w"> </span><span class="c1">; for interrupt</span> <span class="w"> </span><span class="nf">int</span><span class="w"> </span><span class="mi">10</span><span class="no">h</span><span class="w"> </span><span class="c1">; write character</span> <span class="w"> </span><span class="nf">dec</span><span class="w"> </span><span class="no">si</span><span class="w"> </span><span class="c1">; get rid of character</span> <span class="w"> </span><span class="nf">jnz</span><span class="w"> </span><span class="no">tloop</span> <span class="w"> </span> <span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">si</span><span class="w"> </span> <span class="w"> </span><span class="no">pop</span><span class="w"> </span><span class="no">dx</span> <span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">cx</span> <span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">bx</span> <span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">ax</span> <span class="w"> </span><span class="nf">pop</span><span class="w"> </span><span class="no">bp</span> <span class="w"> </span><span class="nf">ret</span><span class="w"> </span><span class="mi">4</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Books">Books</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=15" title="Change section: Books" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=15" title="Edit section&#039;s source code: Books"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Michael Singer, <i>PDP-11. Assembler Language Programming and Machine Organization</i>, John Wiley &amp; Sons, NY: 1980.</li> <li>Peter Norton, John Socha, <i>Peter Norton's Assembly Language Book for the IBM PC</i>, Brady Books, NY: 1986.</li> <li>Dominic Sweetman: <i>See MIPS Run</i>. Morgan Kaufmann Publishers, 1999. <style data-mw-deduplicate="TemplateStyles:r9724332">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/1-55860-410-3" title="Special:BookSources/1-55860-410-3">1-55860-410-3</a></li> <li>John Waldron: <i>Introduction to RISC Assembly Language Programming</i>. Addison Wesley, 1998. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r9724332"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-201-39828-1" title="Special:BookSources/0-201-39828-1">0-201-39828-1</a></li> <li>Jeff Duntemann: <i>Assembly Language Step-by-Step</i>. Wiley, 2000. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r9724332"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-471-37523-3" title="Special:BookSources/0-471-37523-3">0-471-37523-3</a></li> <li>Paul Carter: <i>PC Assembly Language</i>. Free ebook, 2001.<br /><a rel="nofollow" class="external text" href="http://drpaulcarter.com/pcasm/">Website</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180224205150/http://www.drpaulcarter.com/pcasm/">Archived</a> 2018-02-24 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li>Robert Britton: <i>MIPS Assembly Language Programming</i>. Prentice Hall, 2003. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r9724332"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-13-142044-5" title="Special:BookSources/0-13-142044-5">0-13-142044-5</a></li> <li>Randall Hyde: <i>The Art of Assembly Language</i>. No Starch Press, 2003. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r9724332"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/1-886411-97-2" title="Special:BookSources/1-886411-97-2">1-886411-97-2</a><br />Draft versions <a rel="nofollow" class="external text" href="http://webster.cs.ucr.edu/AoA/index.html">available online</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110128075719/http://webster.cs.ucr.edu/AoA/index.html">Archived</a> 2011-01-28 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> as PDF and HTML</li> <li>Jonathan Bartlett: <i>Programming from the Ground Up</i>. Bartlett Publishing, 2004. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r9724332"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-9752838-4-7" title="Special:BookSources/0-9752838-4-7">0-9752838-4-7</a><br />Available online <a rel="nofollow" class="external text" href="http://savannah.nongnu.org/projects/pgubook/">as PDF</a> and <a rel="nofollow" class="external text" href="http://programminggroundup.blogspot.com/">as HTML</a></li> <li><a rel="nofollow" class="external text" href="http://www.asmcommunity.net/board/index.php?action=book"><i>ASM Community Book</i></a> "An online book full of helpful ASM info, tutorials and code examples" by the <a rel="nofollow" class="external text" href="http://www.asmcommunity.net">ASM Community</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Software">Software</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=16" title="Change section: Software" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=16" title="Edit section&#039;s source code: Software"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/MenuetOS" title="MenuetOS">MenuetOS</a> <a rel="nofollow" class="external text" href="http://www.menuetos.net/">- Operating System written entirely in 64-bit assembly language</a></li> <li><a rel="nofollow" class="external text" href="http://www.sbprojects.net/">SB-Assembler for most 8-bit processors/controllers</a></li> <li><a rel="nofollow" class="external text" href="http://www.gnu.org/software/lightning/lightning.html">GNU lightning</a>, a library that generates assembly language code at run-time which is useful for Just-In-Time compilers</li> <li><a rel="nofollow" class="external text" href="http://www.winasm.net">WinAsm Studio, The Assembly IDE - Free Downloads, Source Code </a>, a free Assembly IDE, a lot of open source programs to download and a popular <a rel="nofollow" class="external text" href="http://www.winasm.net/forum/index.php">Board</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080805221125/http://www.winasm.net/forum/index.php">Archived</a> 2008-08-05 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://nasm.sourceforge.net">The Netwide Assembler</a></li> <li><a rel="nofollow" class="external text" href="http://www.godevtool.com/">GoAsm</a> - a free component "Go" tools: support 32-bit &amp; 64-bit Windows programming</li></ul> <div class="mw-heading mw-heading2"><h2 id="Other_websites">Other websites</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Assembly_language&amp;veaction=edit&amp;section=17" title="Change section: Other websites" class="mw-editsection-visualeditor"><span>change</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Assembly_language&amp;action=edit&amp;section=17" title="Edit section&#039;s source code: Other websites"><span>change source</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external free" href="http://www.atariarchives.org/mlb/introduction.php">http://www.atariarchives.org/mlb/introduction.php</a></li> <li><a rel="nofollow" class="external free" href="http://www.swansontec.com/sprogram.htm">http://www.swansontec.com/sprogram.htm</a></li> <li><a rel="nofollow" class="external text" href="http://www.asmcommunity.net/">The ASM Community</a>, a great ASM programming resource including a <a rel="nofollow" class="external text" href="http://www.asmcommunity.net/board/">Messageboard</a> and an <a rel="nofollow" class="external text" href="http://www.asmcommunity.net/book">ASM Book</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20091029010208/http://www.asmcommunity.net/book/">Archived</a> 2009-10-29 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20091029010208/http://www.asmcommunity.net/book/">Archived</a> 2009-10-29 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://www.jegerlehner.ch/intel/IntelCodeTable.pdf">Intel Assembly 80x86 CodeTable</a> (a cheat sheet reference)</li> <li><a rel="nofollow" class="external text" href="http://www.int80h.org/">Unix Assembly Language Programming</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200217234456/http://www.int80h.org/">Archived</a> 2020-02-17 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://c2.com/cgi/wiki?LearningAssemblyLanguage">PPR: Learning Assembly Language</a></li> <li><a rel="nofollow" class="external text" href="http://www.azillionmonkeys.com/qed/asmexample.html">Assembly Language Programming Examples</a></li> <li><a rel="nofollow" class="external text" href="http://www.cs.cornell.edu/talc/">Typed Assembly Language (TAL)</a></li> <li><a rel="nofollow" class="external text" href="https://www.grc.com/smgassembly.htm">Authoring Windows Applications In Assembly Language</a></li> <li><a rel="nofollow" class="external text" href="http://linuxassembly.org/">Information on Linux assembly programming</a></li> <li><a rel="nofollow" class="external text" href="http://terse.com/">Terse: Algebraic Assembly Language for x86</a></li> <li><a rel="nofollow" class="external text" href="http://win32assembly.online.fr/tutorials.html">Iczelion's Win32 Assembly Tutorial</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080308040710/http://win32assembly.online.fr/tutorials.html">Archived</a> 2008-03-08 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/r8pdf/zarchpops.html">IBM z/Architecture Principles of Operation</a> IBM manuals on <a href="/wiki/Mainframe_computer" title="Mainframe computer">mainframe</a> machine language and internals.</li> <li><a rel="nofollow" class="external text" href="http://www-03.ibm.com/servers/eserver/zseries/zos/bkserv/r8pdf/hlasm.html">IBM High Level Assembler</a> IBM manuals on mainframe assembler language.</li> <li><a rel="nofollow" class="external text" href="http://mark.masmcode.com/">Assembly Optimization Tips</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190507214254/http://www.mark.masmcode.com/">Archived</a> 2019-05-07 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> by <a href="/w/index.php?title=Mark_Larson&amp;action=edit&amp;redlink=1" class="new" title="Mark Larson (not yet started)">Mark Larson</a></li> <li><a rel="nofollow" class="external text" href="http://www.ibmmainframes.com/forum-39.html">Mainframe Assembler Forum</a></li> <li><a rel="nofollow" class="external text" href="http://nasm.sourceforge.net/doc/nasmdoc0.html">NASM Manual</a></li> <li><a rel="nofollow" class="external text" href="http://www.turboirc.com/asm">Experiment with Intel x86/x64 operating modes with assembly</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080920020832/http://www.turboirc.com/asm/">Archived</a> 2008-09-20 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://eni4ever.com/news_cats.php?cat_id=17">Build yourself an assembler (eniAsm project)</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080918083510/http://www.eni4ever.com/news_cats.php?cat_id=17">Archived</a> 2008-09-18 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> and various assembly articles and tutorials</li> <li><a rel="nofollow" class="external text" href="http://www.halcode.com/archives/2008/04/28/encoding-intel-x86ia-32-assembler-instructions/">Encoding Intel x86/IA-32 Assembler Instructions</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080724034638/http://www.halcode.com/archives/2008/04/28/encoding-intel-x86ia-32-assembler-instructions/">Archived</a> 2008-07-24 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li></ul> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐64476968cd‐2wd7j Cached time: 20241102123652 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.190 seconds Real time usage: 1.025 seconds Preprocessor visited node count: 1892/1000000 Post‐expand include size: 16186/2097152 bytes Template argument size: 4331/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 11/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 27708/5000000 bytes Lua time usage: 0.048/10.000 seconds Lua memory usage: 1987583/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 966.342 1 -total 9.33% 90.175 6 Template:ISBN 6.97% 67.339 1 Template:Nofootnotes 6.30% 60.883 1 Template:Ambox 4.80% 46.404 6 Template:Catalog_lookup_link 2.05% 19.819 6 Template:Error-small 1.96% 18.975 11 Template:Webarchive 1.74% 16.817 6 Template:Small 0.84% 8.075 18 Template:Yesno-no 0.79% 7.597 6 Template:Tl --> <!-- Saved in parser cache with key simplewiki:pcache:idhash:123020-0!canonical and timestamp 20241102123652 and revision id 9804333. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://simple.wikipedia.org/w/index.php?title=Assembly_language&amp;oldid=9804333">https://simple.wikipedia.org/w/index.php?title=Assembly_language&amp;oldid=9804333</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Category</a>: <ul><li><a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Programming languages</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_lacking_in-text_citations" title="Category:Articles lacking in-text citations">Articles lacking in-text citations</a></li><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last changed on 3 October 2024, at 11:02.</li> <li id="footer-info-copyright">Text is available under the <a rel="nofollow" class="external text" href="//creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike License</a> and the <a href="/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License" title="Wikipedia:Text of the GNU Free Documentation License">GFDL</a>; additional terms may apply. See <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> for details.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/simple.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//simple.m.wikipedia.org/w/index.php?title=Assembly_language&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-ddwrv","wgBackendResponseTime":158,"wgPageParseReport":{"limitreport":{"cputime":"0.190","walltime":"1.025","ppvisitednodes":{"value":1892,"limit":1000000},"postexpandincludesize":{"value":16186,"limit":2097152},"templateargumentsize":{"value":4331,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":11,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":27708,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 966.342 1 -total"," 9.33% 90.175 6 Template:ISBN"," 6.97% 67.339 1 Template:Nofootnotes"," 6.30% 60.883 1 Template:Ambox"," 4.80% 46.404 6 Template:Catalog_lookup_link"," 2.05% 19.819 6 Template:Error-small"," 1.96% 18.975 11 Template:Webarchive"," 1.74% 16.817 6 Template:Small"," 0.84% 8.075 18 Template:Yesno-no"," 0.79% 7.597 6 Template:Tl"]},"scribunto":{"limitreport-timeusage":{"value":"0.048","limit":"10.000"},"limitreport-memusage":{"value":1987583,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-64476968cd-2wd7j","timestamp":"20241102123652","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Assembly language","url":"https:\/\/simple.wikipedia.org\/wiki\/Assembly_language","sameAs":"http:\/\/www.wikidata.org\/entity\/Q165436","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q165436","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2008-08-05T17:50:47Z","dateModified":"2024-10-03T11:02:36Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/f\/f3\/Motorola_6800_Assembly_Language.png","headline":"any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10