{"id":879,"date":"2011-08-03T21:18:04","date_gmt":"2011-08-03T19:18:04","guid":{"rendered":"http:\/\/www.iprog.it\/blog\/?p=879"},"modified":"2012-04-30T18:33:39","modified_gmt":"2012-04-30T17:33:39","slug":"assembly-lezione-2-registri-della-cpu-intel-8086","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/","title":{"rendered":"Assembly &#8211; lezione 2: registri della CPU Intel 8086"},"content":{"rendered":"<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif\" rel=\"lightbox[879]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-768\" title=\"assembly\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly-300x171.gif\" alt=\"\" width=\"300\" height=\"171\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly-300x171.gif 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif 436w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Prima di poter programmare in Assembly \u00e8 necessario, al fine di evitare errori stupidi<!--more-->, capire la struttura interna del processore che si vuole programmare. Dato che programmare insieme, impareremo la struttura interna del processore Intel 8086.<\/p>\n<p>I registri dell&#8217;Intel 8086 sono piccole locazioni di memoria di dimensione fissa, utilizzati dall&#8217;ALU (Unit\u00e0 Aritmetico Logica) per memorizzare gli operandi dei proprio calcoli. Questi registri hanno tutti la stessa dimensione di 16 bit, quindi gli operandi sono limitati ad un numero pari a 2^16, non possono essere utilizzati liberamente ma ogni registro ha un suo ruolo specifico:<\/p>\n<ol>\n<li><strong>registri general purpose;<\/strong><\/li>\n<li><strong>registri puntatori e indici;<\/strong><\/li>\n<li><strong>registri di segmento;<\/strong><\/li>\n<li><strong>registri speciali.<\/strong><\/li>\n<\/ol>\n<p><strong><br \/>\n<\/strong><\/p>\n<p><strong>-registri general purpose:<\/strong><\/p>\n<p><strong> <\/strong>questi registri sono utilizzati per:<\/p>\n<ol>\n<li>operazioni aritmetiche;<\/li>\n<li>operazioni logiche;<\/li>\n<li>trasferimento di dati.<\/li>\n<\/ol>\n<p>Ogni registro ha un ruolo specifico e tutti sono lunghi 16bit divisi in 2 parti da 8bit. Andiamo nello specifico:<\/p>\n<ol>\n<li><strong>registro AX:<\/strong> questo registro si divide in AL-AH ed \u00e8 utilizzato come accumulatore e per le operazioni di tipo I\/O, traslazione e operazioni BCD;<\/li>\n<li><strong>registro BX: <\/strong>questo registro si divide in BL-BH ed \u00e8 utilizzato come\u00a0base per il calcolo di indirizzi in memoria, sommando a esso specifici offset;<\/li>\n<li><strong>registro CX: <\/strong>questo registro si divide in CL-CH ed \u00e8 utilizzato come contare, per operazioni ripetute nel tempo;<\/li>\n<li><strong>registro DX: <\/strong>questo registro si divide in DL-DH ed \u00e8 utilizzato come supplemento per dati,\u00a0pu\u00f2 contenere operandi per divisioni, moltiplicazioni, e gli indirizzi delle porte per I\/O.<\/li>\n<\/ol>\n<p><strong>-registri puntatori e indici:<\/strong><\/p>\n<p>questi registri sono di 2 tipi<\/p>\n<ol>\n<li><strong>puntatore SP e <\/strong><strong>puntatore BP: <\/strong>questi puntatori (Stack Pointer e Base Pointer) puntano rispettivamente alla cima dello stack e ad un punto all&#8217;interno dell stack;<\/li>\n<li><strong>indice SI e indice DI: <\/strong>questi indici (Source Index e Destination Index) sono utilizzati\u00a0come registri di indirizzamento sorgente e destinazione per movimenti di blocchi di memoria.<\/li>\n<\/ol>\n<p><strong>-registri di segmento:<\/strong><\/p>\n<p>questi registri sono utilizzati\u00a0in coppia con altri e vengono utilizzati per generare indirizzi a 20 bit partendo da una dimensione di 16 bit. I registri sono classificati come segue:<\/p>\n<ol>\n<li><strong>CS (code segment): <\/strong>registro che indica l&#8217;inizio della locazione di memoria che contiene il programma da eseguire;<\/li>\n<li><strong>DS (data segment): <\/strong>registro che indica il\u00a0primo byte della zona di memoria che contiene i dati;<\/li>\n<li><strong>SS (stack segment):<\/strong> registro che indica l&#8217;inizio della parte di memoria denominata come stack;<\/li>\n<li><strong>ES (extra segment):<\/strong> registro dinamico utilizzato secondo le esigenze.<\/li>\n<\/ol>\n<p>I primi 3 registri, contenendo gli indirizzi base delle zone di memoria sommata con degli opportuni offset possiamo accedere all&#8217;intera zona di memoria.: infatti la CPU non comunica direttamente ma sommando un offset al&#8217;indirizzo base della zone di memoria interessata.<\/p>\n<p>&#8211;<strong>registri speciali:<\/strong><\/p>\n<p>i registri speciali si dividono in:<\/p>\n<ol>\n<li><strong>IP (istruction pointer): <\/strong>questo registro\u00a0contiene l&#8217;indirizzo della prossima istruzione da eseguire, cio\u00e8 l&#8217;offset da sommare a <strong>CS<\/strong> dell&#8217;istruzione successiva, nel programma in esecuzione.<\/li>\n<li><strong>FLAG (registro di stato):<\/strong> questo registro \u00e8 lungo 16bit, composto da 16 celle da 1bit, dove ogni bit ha un significato specifico.<\/li>\n<\/ol>\n<p>L&#8217;Intel ne utilizza solo 9. Questi bit non possono essere modificati dal programmatore, \u00e8 la CPU che si assume l&#8217;incarico: modifica il valore di questi bit (1 o 0) al verificarsi di eventi specifici. I 9 bit sono:<\/p>\n<ol>\n<li><strong>bit Overflow (OF):<\/strong> bit che assume valore 1 se l&#8217;operazione eseguita ha riportato un risultato troppo grande;<\/li>\n<li><strong>bit Sign(SF):<\/strong> bit che assume valore 1 se il risultato dell&#8217;operazione eseguita \u00e8 negativo;<\/li>\n<li><strong>bit Zero(ZF): <\/strong>bit che assume valore 1 se il risultato di un operazione \u00e8 zero;<\/li>\n<li><strong>bit Auxiliary Carry(AF):<\/strong> bit che indica un riporto o un prestito;<\/li>\n<li><strong>bit Parity Flag(PF):<\/strong> bit che assume valore 1 se c&#8217;\u00e8 un numero pari di bit con valore 1 nel risultato dell&#8217;operazione;<\/li>\n<li><strong>bit Carry Flag(CF):<\/strong> bit che indica un riporto o un prestito nell&#8217;ultimo risultato;<\/li>\n<li><strong>bit Direction(DF):<\/strong> bit che indica se incrementare o decrementare per le istruzioni con le stringhe;<\/li>\n<li><strong>bit Interrupt Enable(IF): <\/strong>bit che indica se le interruzioni mascherate sono abilitate;<\/li>\n<li><strong>bit Trap(TF):<\/strong> bit usato nei debugger per eseguire un passo alla volta. Genera un <strong>INT 3<\/strong> dopo ogni istruzione.<\/li>\n<\/ol>\n<p>Questo \u00e8 tutto sui registri, nella prossima lezione approfondiremo lo stack.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prima di poter programmare in Assembly \u00e8 necessario, al fine di evitare errori stupidi<\/p>\n","protected":false},"author":5,"featured_media":768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[1459,34,1321,1458,392,1375,394,393,83,1457,1460],"class_list":["post-879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-assembly","tag-assembly-","tag-dell","tag-errori","tag-intel","tag-intel-8086","tag-lezione","tag-processore-intel","tag-programmare-in-assembly","tag-questo","tag-registri","tag-struttura-interna"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Assembly - lezione 2: registri della CPU Intel 8086 - iProg<\/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:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Assembly - lezione 2: registri della CPU Intel 8086 - iProg\" \/>\n<meta name=\"twitter:description\" content=\"Prima di poter programmare in Assembly \u00e8 necessario, al fine di evitare errori stupidi\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif\" \/>\n<meta name=\"twitter:creator\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/\"},\"author\":{\"name\":\"Fabio\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"headline\":\"Assembly &#8211; lezione 2: registri della CPU Intel 8086\",\"datePublished\":\"2011-08-03T19:18:04+00:00\",\"dateModified\":\"2012-04-30T17:33:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/\"},\"wordCount\":671,\"commentCount\":3,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/assembly.gif\",\"keywords\":[\"Assembly \ufffd\",\"dell\",\"errori\",\"Intel\",\"intel 8086\",\"Lezione\",\"processore intel\",\"programmare in assembly\",\"questo\",\"Registri\",\"struttura interna\"],\"articleSection\":[\"Assembly\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/\",\"name\":\"Assembly - lezione 2: registri della CPU Intel 8086 - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/assembly.gif\",\"datePublished\":\"2011-08-03T19:18:04+00:00\",\"dateModified\":\"2012-04-30T17:33:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/assembly\\\/assembly-lezione-2-registri-della-cpu-intel-8086\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/assembly.gif\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/08\\\/assembly.gif\",\"width\":\"436\",\"height\":\"249\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\",\"name\":\"Fabio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"caption\":\"Fabio\"},\"description\":\"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+\",\"sameAs\":[\"http:\\\/\\\/www.fabiosoft.com\",\"https:\\\/\\\/www.facebook.com\\\/devfabionisci\\\/\",\"http:\\\/\\\/it.linkedin.com\\\/in\\\/fabionisci\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/fabiosoft\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Assembly - lezione 2: registri della CPU Intel 8086 - iProg","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:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/","twitter_card":"summary_large_image","twitter_title":"Assembly - lezione 2: registri della CPU Intel 8086 - iProg","twitter_description":"Prima di poter programmare in Assembly \u00e8 necessario, al fine di evitare errori stupidi","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif","twitter_creator":"@iprogblog","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Fabio","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/"},"author":{"name":"Fabio","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"headline":"Assembly &#8211; lezione 2: registri della CPU Intel 8086","datePublished":"2011-08-03T19:18:04+00:00","dateModified":"2012-04-30T17:33:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/"},"wordCount":671,"commentCount":3,"image":{"@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif","keywords":["Assembly \ufffd","dell","errori","Intel","intel 8086","Lezione","processore intel","programmare in assembly","questo","Registri","struttura interna"],"articleSection":["Assembly"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/","url":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/","name":"Assembly - lezione 2: registri della CPU Intel 8086 - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif","datePublished":"2011-08-03T19:18:04+00:00","dateModified":"2012-04-30T17:33:39+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/assembly\/assembly-lezione-2-registri-della-cpu-intel-8086\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2011\/08\/assembly.gif","width":"436","height":"249"},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51","name":"Fabio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","caption":"Fabio"},"description":"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+","sameAs":["http:\/\/www.fabiosoft.com","https:\/\/www.facebook.com\/devfabionisci\/","http:\/\/it.linkedin.com\/in\/fabionisci"],"url":"https:\/\/www.iprog.it\/blog\/author\/fabiosoft\/"}]}},"views":22779,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=879"}],"version-history":[{"count":0,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/879\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/768"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}