{"id":32968,"date":"2023-02-03T09:29:37","date_gmt":"2023-02-03T03:59:37","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/"},"modified":"2023-02-03T09:29:37","modified_gmt":"2023-02-03T03:59:37","slug":"solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/","title":{"rendered":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-30657966\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"30657966\" data-parentid=\"30657143\" 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=\"s-prose js-post-body\" itemprop=\"text\">\n<p>1) x86 probably the worst instruction set to learn first.  just because you have one is not a good reason (you may not know it but for every x86 you have several arm processors not that using those is a good idea either).<\/p>\n<p>2) start with a simulator, bare metal makes it a lot easier&#8230;pcemu for example.  ideally something that shows you stuff as it runs, register and memory accesses, not gdb type of a thing as that wont prevent you from a hang or crash or necessarily help for those.<\/p>\n<p>3) arm\/thumb or msp430 are good instruction sets<\/p>\n<p>Nevertheless, this is on linux but can be done simply with windows as well..<\/p>\n<p>main.c<\/p>\n<pre><code>#include &lt;stdio.h&gt;\n\nextern unsigned int fun ( unsigned int a, unsigned int b );\n\nint main ( void )\n{\n    printf(\"%u\\n\",fun(1,2));\n    return(0);\n}\n<\/code><\/pre>\n<p>fun.c<\/p>\n<pre><code>unsigned int fun ( unsigned int a, unsigned int b )\n{\n    return(a+b+7);\n}\n<\/code><\/pre>\n<p>build and run<\/p>\n<pre><code>gcc -O2 -c fun.c -o fun.o\ngcc -O2 main.c fun.o -o main\n.\/main\n10\n<\/code><\/pre>\n<p>now&#8230;<\/p>\n<pre><code>objdump -D fun.o\n... the part we care about:\n0000000000000000 &lt;fun&gt;:\n   0:   8d 44 37 07             lea    0x7(%rdi,%rsi,1),%eax\n   4:   c3  \n...\n<\/code><\/pre>\n<p>from that make fun.s<\/p>\n<pre><code>.globl fun\nfun:\n    lea    0x8(%rdi,%rsi,1),%eax\n    retq\n<\/code><\/pre>\n<p>changing the 7 to an 8<\/p>\n<pre><code>as fun.s -o funs.o\ngcc -O2 main.c funs.o -o main\n.\/main\n11\n<\/code><\/pre>\n<p>there you go, an program with some x86 assembly, worry about main later. running on an operating system what you can do is extremely limited, so your hands will be tied, often leading to general protection faults crashing the program.  <\/p>\n<p>You can make increasingly more complicated C programs, compile and disassemble, look those instructions up on the web or in the books you have.  Make mods where possible and see what happens.<\/p>\n<p>Compilers do not necessarily generate code that is easy to follow, but it is code that obviously works.  and the code generated is not the only way, also play with different optimization levels, for this kind of thing more optimization is better so long as you can write high level code that doesnt have dead code in it that gets optimized out.  <\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What is the trick to learn x86 assembly language on Windows PC? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] 1) x86 probably the worst instruction set to learn first. just because you have one is not a good reason (you may not know it but for every x86 you have several arm processors not that using those is a good idea either). 2) start with a simulator, bare metal makes it a lot &#8230; <a title=\"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\" aria-label=\"More on [Solved] What is the trick to learn x86 assembly language on Windows PC? [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,523],"class_list":["post-32968","post","type-post","status-publish","format-standard","hentry","category-solved","tag-assembly","tag-x86"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] What is the trick to learn x86 assembly language on Windows PC? [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-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] 1) x86 probably the worst instruction set to learn first. just because you have one is not a good reason (you may not know it but for every x86 you have several arm processors not that using those is a good idea either). 2) start with a simulator, bare metal makes it a lot ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-03T03:59:37+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-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed]\",\"datePublished\":\"2023-02-03T03:59:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\"},\"wordCount\":293,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"assembly\",\"x86\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\",\"name\":\"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2023-02-03T03:59:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What is the trick to learn x86 assembly language on Windows PC? [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=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [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-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed] - JassWeb","og_description":"[ad_1] 1) x86 probably the worst instruction set to learn first. just because you have one is not a good reason (you may not know it but for every x86 you have several arm processors not that using those is a good idea either). 2) start with a simulator, bare metal makes it a lot ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/","og_site_name":"JassWeb","article_published_time":"2023-02-03T03:59:37+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-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed]","datePublished":"2023-02-03T03:59:37+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/"},"wordCount":293,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["assembly","x86"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/","name":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-02-03T03:59:37+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-trick-to-learn-x86-assembly-language-on-windows-pc-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What is the trick to learn x86 assembly language on Windows PC? [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=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","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\/32968","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=32968"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/32968\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=32968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=32968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=32968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}