{"id":14439,"date":"2022-10-07T20:27:57","date_gmt":"2022-10-07T14:57:57","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/"},"modified":"2022-10-07T20:27:57","modified_gmt":"2022-10-07T14:57:57","slug":"solved-why-do-we-need-assembly-instructions-in-and-out-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/","title":{"rendered":"[Solved] why do we need assembly instructions in and out? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-54684120\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"54684120\" data-parentid=\"54682153\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"js-endorsements\" data-for-answer=\"54684120\">\n<\/div>\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>You seem not to have understood how the CPU and the bus are working:<\/p>\n<blockquote>\n<p>As you knows network i\/o is based on nic interrupt.<\/p>\n<\/blockquote>\n<p>An <strong>interrupt<\/strong> is a mechanism which is starting a short <em>program<\/em> whenever the hardware (for example the network card) requests the CPU to do so.<\/p>\n<p>An interrupt only starts this short program; it does nothing else. It also does not transfer any kind of data.<\/p>\n<p>Another mechanism shown on your image is <strong>DMA<\/strong>. Using DMA a hardware component (such as the network card) can directly read data from the RAM or write data to the RAM. The network card obviously uses this mechanism to copy network data to the RAM and to send data which is stored in the RAM.<\/p>\n<p>However, if we want to send data to the network, we first have to tell the network card that there is data to be sent at all before the network card can access the RAM using DMA. The same is true when we want to initialize the network card.<\/p>\n<p>So using DMA only, we cannot tell the network card that there is data to be sent. Initializing the network card when the computer is started is also not possible. Interrupts will also not help us because interrupts are initiated by the network card and not by the software. We need a third mechanism to access the network card.<\/p>\n<blockquote>\n<p>so why do we need assembly instructions in and out to get data from nic register directly?<\/p>\n<\/blockquote>\n<p>When using x86 CPUs, the <code>in<\/code> and <code>out<\/code> instructions are used to directly read and write data to some hardware component.<\/p>\n<p>Indeed hardware can be attached to the CPU in a way that it is accessed in the same way RAM is accessed: For example using <code>mov<\/code> instructions. The memory of the graphics card is accessed this way. There are also CPUs (like ARM CPUs which are common in cell phones) that access all hardware the same way RAM is accessed. (Such CPUs don&#8217;t have <code>in<\/code> or <code>out<\/code> instructions.)<\/p>\n<p>In PC-compatible computers however, hardware is typically attached in a way that it must be accessed using <code>in<\/code> and <code>out<\/code> instructions.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">3<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved why do we need assembly instructions in and out? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] You seem not to have understood how the CPU and the bus are working: As you knows network i\/o is based on nic interrupt. An interrupt is a mechanism which is starting a short program whenever the hardware (for example the network card) requests the CPU to do so. An interrupt only starts this &#8230; <a title=\"[Solved] why do we need assembly instructions in and out? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\" aria-label=\"More on [Solved] why do we need assembly instructions in and out? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[465,1384,970,1367,523],"class_list":["post-14439","post","type-post","status-publish","format-standard","hentry","category-solved","tag-assembly","tag-cpu","tag-networking","tag-operating-system","tag-x86"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] why do we need assembly instructions in and out? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] why do we need assembly instructions in and out? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] You seem not to have understood how the CPU and the bus are working: As you knows network i\/o is based on nic interrupt. An interrupt is a mechanism which is starting a short program whenever the hardware (for example the network card) requests the CPU to do so. An interrupt only starts this ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-07T14:57:57+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] why do we need assembly instructions in and out? [closed]\",\"datePublished\":\"2022-10-07T14:57:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\"},\"wordCount\":378,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"assembly\",\"cpu\",\"networking\",\"operating-system\",\"x86\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\",\"name\":\"[Solved] why do we need assembly instructions in and out? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-07T14:57:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] why do we need assembly instructions in and out? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] why do we need assembly instructions in and out? [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] why do we need assembly instructions in and out? [closed] - JassWeb","og_description":"[ad_1] You seem not to have understood how the CPU and the bus are working: As you knows network i\/o is based on nic interrupt. An interrupt is a mechanism which is starting a short program whenever the hardware (for example the network card) requests the CPU to do so. An interrupt only starts this ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/","og_site_name":"JassWeb","article_published_time":"2022-10-07T14:57:57+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] why do we need assembly instructions in and out? [closed]","datePublished":"2022-10-07T14:57:57+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/"},"wordCount":378,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["assembly","cpu","networking","operating-system","x86"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/","name":"[Solved] why do we need assembly instructions in and out? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-07T14:57:57+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-we-need-assembly-instructions-in-and-out-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] why do we need assembly instructions in and out? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=14439"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14439\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=14439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=14439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=14439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}