{"id":287821,"date":"2018-08-16T14:17:18","date_gmt":"2018-08-16T10:17:18","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=287821"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2018-08-16T10:17:18","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=287821","title":{"rendered":"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0430\u0440\u043a\u0430\u0434\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430. \u0427\u0430\u0441\u0442\u044c 3"},"content":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/418699\/\" class=\"post__text post__text-html js-mediator-article\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4ec\/e50\/f3a\/4ece50f3a555bfb39878326ec26addd5.jpg\" alt=\"image\"><\/div>\n<p>  \u0427\u0430\u0441\u0442\u0438 <a href=\"https:\/\/habr.com\/post\/418635\/\">\u043f\u0435\u0440\u0432\u0430\u044f<\/a> \u0438 <a href=\"https:\/\/habr.com\/post\/418683\/\">\u0432\u0442\u043e\u0440\u0430\u044f<\/a>.<\/p>\n<h1>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080<\/h1>\n<p>  <\/p>\n<h1>\u041e\u0431\u043e\u043b\u043e\u0447\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/h1>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080.<\/p>\n<p>  <em>\u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u043a\u043e\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043e\u0441\u0432\u043e\u0438\u0442\u0435\u0441\u044c \u0441 \u043d\u0438\u043c, \u0442\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/em><\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430. \u0422\u0430\u043a\u0436\u0435 \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0431\u043e\u0439 \u041e\u0417\u0423.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<pre><code class=\"cpp\">   typedef struct ConditionCodes {         uint8_t    z:1;         uint8_t    s:1;         uint8_t    p:1;         uint8_t    cy:1;         uint8_t    ac:1;         uint8_t    pad:3;        } ConditionCodes;     typedef struct State8080 {         uint8_t    a;         uint8_t    b;         uint8_t    c;         uint8_t    d;         uint8_t    e;         uint8_t    h;         uint8_t    l;         uint16_t    sp;         uint16_t    pc;         uint8_t     *memory;         struct      ConditionCodes      cc;         uint8_t     int_enable;        } State8080;<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">   void UnimplementedInstruction(State8080* state)        {         \/\/\u0443 pc \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u0442\u043e     printf (\"Error: Unimplemented instruction\\n\");         exit(1);        }     int Emulate8080Op(State8080* state)        {         unsigned char *opcode = &amp;state-&gt;memory[state-&gt;pc];          switch(*opcode)         {             case 0x00: UnimplementedInstruction(state); break;             case 0x01: UnimplementedInstruction(state); break;             case 0x02: UnimplementedInstruction(state); break;             case 0x03: UnimplementedInstruction(state); break;             case 0x04: UnimplementedInstruction(state); break;             \/*....*\/             case 0xfe: UnimplementedInstruction(state); break;             case 0xff: UnimplementedInstruction(state); break;         }         state-&gt;pc+=1;  \/\/\u0434\u043b\u044f \u043e\u043f\u043a\u043e\u0434\u0430    }<\/code><\/pre>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u043a\u043e\u0434\u043e\u0432.<\/p>\n<pre><code class=\"cpp\">  void Emulate8080Op(State8080* state)        {         unsigned char *opcode = &amp;state-&gt;memory[state-&gt;pc];      switch(*opcode)         {             case 0x00: break;                   \/\/NOP - \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e!             case 0x01:                          \/\/LXI   B,\u0441\u043b\u043e\u0432\u043e             state-&gt;c = opcode[1];                 state-&gt;b = opcode[2];                 state-&gt;pc += 2;                  \/\/\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u0435\u0449\u0451 \u043d\u0430 2 \u0431\u0430\u0439\u0442\u0430             break;             \/*....*\/             case 0x41: state-&gt;b = state-&gt;c; break;    \/\/MOV B,C             case 0x42: state-&gt;b = state-&gt;d; break;    \/\/MOV B,D             case 0x43: state-&gt;b = state-&gt;e; break;    \/\/MOV B,E         }         state-&gt;pc+=1;        }<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u043f\u043a\u043e\u0434\u0430 \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u043f\u0430\u043c\u044f\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b \u0434\u0435\u043b\u0430\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u0430\u044f \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c 8080.<\/p>\n<p>  \u0423 8080 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 7 \u0442\u0438\u043f\u043e\u0432, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/li>\n<li>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/li>\n<li>\u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f<\/li>\n<li>\u0421\u0442\u0435\u043a\u0430<\/li>\n<li>\u0412\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430<\/li>\n<li>\u041e\u0441\u043e\u0431\u044b\u0439<\/li>\n<\/ul>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h1>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430<\/h1>\n<p>  \u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2014 \u044d\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 256 \u043e\u043f\u043a\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0432 \u0441\u0435\u0431\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c A \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 A. (\u0420\u0435\u0433\u0438\u0441\u0442\u0440 A \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u043c (accumulator)).<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043a\u043e\u0434\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (condition code). \u041a\u043e\u0434\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u043b\u0430\u0433\u0430\u043c\u0438) \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u041d\u0435 \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0444\u043b\u0430\u0433\u0438, \u0438 \u043d\u0435 \u0432\u0441\u0435 \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u0444\u043b\u0430\u0433\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u043b\u0438\u044f\u044e\u0442 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0432\u0441\u0435 \u0444\u043b\u0430\u0433\u0438.<\/p>\n<h3>\u0424\u043b\u0430\u0433\u0438 8080<\/h3>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 8080 \u0444\u043b\u0430\u0433\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f Z, S, P, CY \u0438 AC.<\/p>\n<ul>\n<li>Z (zero, \u043d\u043e\u043b\u044c) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0432\u0435\u043d \u043d\u0443\u043b\u044e<\/li>\n<li>S (sign, \u0437\u043d\u0430\u043a) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u043d \u0431\u0438\u0442 7 (\u0441\u0430\u043c\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0439 \u0431\u0438\u0442, most significant bit, MSB) \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/li>\n<li>P (parity, \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u044c) \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0451\u0442\u043d\u044b\u0439, \u0438 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0439<\/li>\n<li>CY (carry, \u043f\u0435\u0440\u0435\u043d\u043e\u0441) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0438\u043b\u0438 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0431\u0438\u0442 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/li>\n<li>AC (auxillary carry, \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 BCD (binary coded decimal, \u0434\u0432\u043e\u0438\u0447\u043d\u043e-\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0435, \u0432 Space Invaders \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/li>\n<\/ul>\n<p>  \u041a\u043e\u0434\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, JZ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d \u0444\u043b\u0430\u0433 Z.<\/p>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438\u043c\u0435\u0435\u0442 \u0442\u0440\u0438 \u0444\u043e\u0440\u043c\u044b: \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0434\u043b\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0434\u043b\u044f \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0445 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043d\u0430 \u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u0434\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. (\u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u044f \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e \u0444\u043b\u0430\u0433 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0431\u044b \u044f \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b, \u0442\u043e \u043d\u0435 \u0441\u043c\u043e\u0433 \u0431\u044b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c.)<\/p>\n<h4>\u0424\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432<\/h4>\n<p>  \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0432\u0443\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0441 \u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430; \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 \u0432\u0438\u0434, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<pre><code class=\"cpp\">    case 0x80:      \/\/ADD B             {                 \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e,             \/\/ \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u043e\u0441             uint16_t answer = (uint16_t) state-&gt;a + (uint16_t) state-&gt;b;              \/\/ \u0424\u043b\u0430\u0433 \u043d\u0443\u043b\u044f: \u0435\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0432\u0435\u043d \u043d\u0443\u043b\u044e,                 \/\/ \u0442\u043e \u0437\u0430\u0434\u0430\u0451\u043c \u0444\u043b\u0430\u0433 \u043d\u0443\u043b\u044f,             \/\/ \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0435\u0433\u043e             if ((answer &amp; 0xff) == 0)                     state-&gt;cc.z = 1;                 else                     state-&gt;cc.z = 0;                  \/\/ \u0424\u043b\u0430\u0433 \u0437\u043d\u0430\u043a\u0430: \u0435\u0441\u043b\u0438 \u0431\u0438\u0442 7 \u0437\u0430\u0434\u0430\u043d,                 \/\/ \u0442\u043e \u0437\u0430\u0434\u0430\u0451\u043c \u0444\u043b\u0430\u0433 \u0437\u043d\u0430\u043a\u0430,             \/\/ \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c \u0435\u0433\u043e             if (answer &amp; 0x80)                     state-&gt;cc.s = 1;                 else                     state-&gt;cc.s = 0;                  \/\/ \u0424\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430             if (answer &gt; 0xff)                     state-&gt;cc.cy = 1;                 else                     state-&gt;cc.cy = 0;                  \/\/ \u0427\u0451\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439             state-&gt;cc.p = Parity( answer &amp; 0xff);                  state-&gt;a = answer &amp; 0xff;             }          \/\/\u041a\u043e\u0434 \u0434\u043b\u044f ADD \u043c\u043e\u0436\u043d\u043e \u0441\u0436\u0430\u0442\u044c \u0434\u043e \u0442\u0430\u043a\u043e\u0433\u043e     case 0x81:      \/\/ADD C             {                 uint16_t answer = (uint16_t) state-&gt;a + (uint16_t) state-&gt;c;                 state-&gt;cc.z = ((answer &amp; 0xff) == 0);                 state-&gt;cc.s = ((answer &amp; 0x80) != 0);                 state-&gt;cc.cy = (answer &gt; 0xff);                 state-&gt;cc.p = Parity(answer&amp;0xff);                 state-&gt;a = answer &amp; 0xff;             }<\/code><\/pre>\n<p>  \u042f \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u044e 8-\u0431\u0438\u0442\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441.<\/p>\n<h4>\u0424\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h4>\n<p>  \u0424\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a\u0430\u044f \u0436\u0435, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0430\u0439\u0442 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u00ab\u043e\u043f\u043a\u043e\u0434\u00bb \u2014 \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, opcode[1] \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0431\u0430\u0439\u0442\u043e\u043c.<\/p>\n<pre><code class=\"cpp\">    case 0xC6:      \/\/ADI \u0431\u0430\u0439\u0442         {                 uint16_t answer = (uint16_t) state-&gt;a + (uint16_t) opcode[1];                 state-&gt;cc.z = ((answer &amp; 0xff) == 0);                 state-&gt;cc.s = ((answer &amp; 0x80) != 0);                 state-&gt;cc.cy = (answer &gt; 0xff);                 state-&gt;cc.p = Parity(answer&amp;0xff);                 state-&gt;a = answer &amp; 0xff;             }<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0424\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043f\u0430\u043c\u044f\u0442\u0438<\/h4>\n<p>  \u0412 \u0444\u043e\u0440\u043c\u0435 \u0434\u043b\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0431\u0430\u0439\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0439\u0441\u044f \u0432 \u043f\u0430\u0440\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 HL.<\/p>\n<pre><code class=\"cpp\">    case 0x86:      \/\/ADD M             {                 uint16_t offset = (state-&gt;h&lt;&lt;8) | (state-&gt;l);                 uint16_t answer = (uint16_t) state-&gt;a + state-&gt;memory[offset];                 state-&gt;cc.z = ((answer &amp; 0xff) == 0);                 state-&gt;cc.s = ((answer &amp; 0x80) != 0);                 state-&gt;cc.cy = (answer &gt; 0xff);                 state-&gt;cc.p = Parity(answer&amp;0xff);                 state-&gt;a = answer &amp; 0xff;             }<\/code><\/pre>\n<p>  <\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/h3>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c (ADC, ACI, SBB, SUI) \u043c\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u0445 \u0431\u0438\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430.<\/li>\n<li>INX \u0438 DCX \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043f\u0430\u0440\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0444\u043b\u0430\u0433\u0438.<\/li>\n<li>DAD \u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0430\u0440\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043e\u043d\u0430 \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430<\/li>\n<li>INR \u0438 DCR \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<h1>\u0413\u0440\u0443\u043f\u043f\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f<\/h1>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0442\u0435\u0441\u044c \u0441 \u043a\u043e\u0434\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439, \u0433\u0440\u0443\u043f\u043f\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b (JMP) \u0438 \u0432\u044b\u0437\u043e\u0432\u044b (CALL). JMP \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0451\u0442 PC \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430. CALL \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043e\u043d \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0432 \u0441\u0442\u0435\u043a, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 PC \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441. RET \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 CALL, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u0441\u0442\u0435\u043a\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0435\u0433\u043e \u0432 PC.<\/p>\n<p>  \u0418 JMP, \u0438 CALL \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u043a\u043e\u0434\u0430.<\/p>\n<h3>JMP<\/h3>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 JMP \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. \u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u0434\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c AC):<\/p>\n<ul>\n<li>JNZ \u0438 JZ \u0434\u043b\u044f \u043d\u0443\u043b\u044f<\/li>\n<li>JNC \u0438 JC \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430<\/li>\n<li>JPO \u0438 JPE \u0434\u043b\u044f \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438<\/li>\n<li>JP (\u043f\u043b\u044e\u0441) \u0438 JM (\u043c\u0438\u043d\u0443\u0441) \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430<\/li>\n<\/ul>\n<p>  \u0412\u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"cpp\">        case 0xc2:                      \/\/JNZ \u0430\u0434\u0440\u0435\u0441             if (0 == state-&gt;cc.z)                     state-&gt;pc = (opcode[2] &lt;&lt; 8) | opcode[1];                 else                     \/\/ \u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e                 state-&gt;pc += 2;                 break;          case 0xc3:                      \/\/JMP \u0430\u0434\u0440\u0435\u0441             state-&gt;pc = (opcode[2] &lt;&lt; 8) | opcode[1];                 break;<\/code><\/pre>\n<p>  <\/p>\n<h3>CALL \u0438 RET<\/h3>\n<p>  CALL \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0442\u0435\u043a \u0430\u0434\u0440\u0435\u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0446\u0435\u043b\u0435\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443. RET \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u0441\u0442\u0435\u043a\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 PC. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 CALL \u0438 RET \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.<\/p>\n<ul>\n<li>CZ, CNZ, RZ, RNZ \u0434\u043b\u044f \u043d\u0443\u043b\u044f<\/li>\n<li>CNC, CC, RNC, RC \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430<\/li>\n<li>CPO, CPE, RPO, RPE \u0434\u043b\u044f \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438<\/li>\n<li>CP, CM, RP, RM \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"cpp\">        case 0xcd:                      \/\/CALL \u0430\u0434\u0440\u0435\u0441             {                 uint16_t    ret = state-&gt;pc+2;                 state-&gt;memory[state-&gt;sp-1] = (ret &gt;&gt; 8) &amp; 0xff;                 state-&gt;memory[state-&gt;sp-2] = (ret &amp; 0xff);                 state-&gt;sp = state-&gt;sp - 2;                 state-&gt;pc = (opcode[2] &lt;&lt; 8) | opcode[1];                 }                     break;          case 0xc9:                      \/\/RET                 state-&gt;pc = state-&gt;memory[state-&gt;sp] | (state-&gt;memory[state-&gt;sp+1] &lt;&lt; 8);                 state-&gt;sp += 2;                 break;<\/code><\/pre>\n<p>  <\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 PCHL \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0430\u0434\u0440\u0435\u0441\u0443 \u0432 \u043f\u0430\u0440\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 HL.<\/li>\n<li>\u0420\u0430\u043d\u0435\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u0443\u044e RST \u044f \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u043b \u0432 \u044d\u0442\u0443 \u0433\u0440\u0443\u043f\u043f\u0443. \u041e\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0432 \u0441\u0442\u0435\u043a, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0432 \u043d\u0438\u0436\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438.<\/li>\n<\/ul>\n<p>  <\/p>\n<h1>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430<\/h1>\n<p>  \u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u0441\u043c. <a href=\"https:\/\/habr.com\/post\/418635\/\">\u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0441\u0442<\/a> \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430). \u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435 \u043e\u043d\u0438 \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c A (\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u043c), \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0444\u043b\u0430\u0433\u0438. \u0412\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u0434 8-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c\u0438, \u0432 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043d\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434, \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0445 \u043d\u0430 \u043f\u0430\u0440\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/p>\n<h3>\u0411\u0443\u043b\u0435\u0432\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>  AND, OR, NOT (CMP) \u0438 \u00ab\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0435 \u0438\u043b\u0438\u00bb (XOR) \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438. OR \u0438 AND \u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u043b \u0440\u0430\u043d\u0435\u0435. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 NOT (\u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080 \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f CMA, \u0438\u043b\u0438 complement accumulator) \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0438\u0442\u043e\u0432 \u2014 \u0432\u0441\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0443\u043b\u044f\u043c\u0438, \u0430 \u043d\u0443\u043b\u0438 \u2014 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438.<\/p>\n<p>  \u042f \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e XOR \u043a\u0430\u043a \u00ab\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439\u00bb. \u0415\u0451 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<table>\n<tr>\n<td>x<\/td>\n<td>y<\/td>\n<td>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>0<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<\/tr>\n<\/table>\n<p>  \u0423 AND, OR \u0438 XOR \u0435\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. (\u0423 CMP \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0430). \u0412\u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u044b \u043e\u043f\u043a\u043e\u0434\u043e\u0432:<\/p>\n<pre><code class=\"cpp\">    case 0x2F:                    \/\/CMA (not)             state-&gt;a = ~state-&gt;a             \/\/\u0412 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0447\u0442\u043e CMA \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0444\u043b\u0430\u0433\u0438         break;      case 0xe6:                    \/\/ANI    \u0431\u0430\u0439\u0442         {             uint8_t x = state-&gt;a &amp; opcode[1];             state-&gt;cc.z = (x == 0);             state-&gt;cc.s = (0x80 == (x &amp; 0x80));             state-&gt;cc.p = parity(x, 8);             state-&gt;cc.cy = 0;           \/\/\u0412 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e ANI \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 CY             state-&gt;a = x;             state-&gt;pc++;                \/\/\u0434\u043b\u044f \u0431\u0430\u0439\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445         }             break;<\/code><\/pre>\n<p>  <\/p>\n<h3>\u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430<\/h3>\n<p>  \u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0438\u0442\u043e\u0432 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445. \u0421\u0434\u0432\u0438\u0433 \u0432\u043f\u0440\u0430\u0432\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0438\u0445 \u0432\u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u0438\u0442, \u0430 \u0441\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e \u2014 \u0432\u043b\u0435\u0432\u043e \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u0438\u0442:<\/p>\n<p>  <code>\u0421\u0434\u0432\u0438\u0433 \u0432\u043f\u0440\u0430\u0432\u043e (0b00010000) = 0b00001000<\/code><\/p>\n<p>  <code>\u0421\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e (0b00000001) = 0b00000010<\/code><\/p>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e. <code>0b00000001<\/code> \u2014 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u0430\u044f 1, \u0438 \u0441\u0434\u0432\u0438\u0433 \u0435\u0451 \u0432\u043b\u0435\u0432\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0451 <code>0b00000010<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0439 2. \u0415\u0441\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c <code>0b00000100<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c 4. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e, \u0438 \u043c\u044b \u0443\u043c\u043d\u043e\u0436\u0438\u043b\u0438 \u043d\u0430 8. \u042d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438: 5 (<code>0b00000101<\/code>) \u043f\u0440\u0438 \u0441\u0434\u0432\u0438\u0433\u0435 \u0432\u043b\u0435\u0432\u043e \u0434\u0430\u0451\u0442 10 (<code>0b00001010<\/code>). \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u0434\u0432\u0438\u0433 \u0432\u043b\u0435\u0432\u043e \u0434\u0430\u0451\u0442 20 (<code>0b00010100<\/code>). \u0421\u0434\u0432\u0438\u0433 \u0432\u043f\u0440\u0430\u0432\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0434\u043b\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0423 8080 \u043d\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. \u0415\u0441\u043b\u0438 \u043f\u043e\u0439\u043c\u0451\u0442\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0431\u043e\u043d\u0443\u0441\u043d\u044b\u0435 \u043e\u0447\u043a\u0438. \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u043d\u0435 \u0437\u0430\u0434\u0430\u043b\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438. (\u042f \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f, \u0445\u043e\u0442\u044f \u044d\u0442\u043e \u0438 \u0437\u0430\u043d\u044f\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.)<\/p>\n<p>  \u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0434\u0432\u0438\u0433 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044f \u0438 \u0432\u043b\u0438\u044f\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0444\u043b\u0430\u0433 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430. \u0412\u043e\u0442 \u044d\u0442\u0430 \u043f\u0430\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434:<\/p>\n<pre><code class=\"cpp\">    case 0x0f:                    \/\/RRC             {                 uint8_t x = state-&gt;a;                 state-&gt;a = ((x &amp; 1) &lt;&lt; 7) | (x &gt;&gt; 1);                 state-&gt;cc.cy = (1 == (x&amp;1));             }             break;      case 0x1f:                    \/\/RAR             {                 uint8_t x = state-&gt;a;                 state-&gt;a = (state-&gt;cc.cy &lt;&lt; 7) | (x &gt;&gt; 1);                 state-&gt;cc.cy = (1 == (x&amp;1));             }             break;<\/code><\/pre>\n<p>  <\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 CMP \u0438 CPI \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0437\u0430\u0434\u0430\u043d\u0438\u0438 \u0444\u043b\u0430\u0433\u043e\u0432 (\u0434\u043b\u044f \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f). \u041e\u043d\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f, \u0437\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0444\u043b\u0430\u0433\u0438, \u043d\u043e \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<ul>\n<li>\u0420\u0430\u0432\u043d\u043e: \u0435\u0441\u043b\u0438 \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0440\u0430\u0432\u043d\u044b, \u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433 Z, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0445 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0434\u0440\u0443\u0433 \u0438\u0437 \u0434\u0440\u0443\u0433\u0430 \u0434\u0430\u0451\u0442 \u043d\u043e\u043b\u044c.<\/li>\n<li>\u0411\u043e\u043b\u044c\u0448\u0435: \u0435\u0441\u043b\u0438 A \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u0444\u043b\u0430\u0433 CY \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u0435\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f).<\/li>\n<li>\u041c\u0435\u043d\u044c\u0448\u0435: \u0435\u0441\u043b\u0438 A \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u0444\u043b\u0430\u0433 CY \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e A \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435).<\/li>\n<\/ul>\n<p>  \u0415\u0441\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0438 \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0438 \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430:<\/p>\n<pre><code class=\"cpp\">    case 0xfe:                      \/\/CPI  \u0431\u0430\u0439\u0442         {             uint8_t x = state-&gt;a - opcode[1];             state-&gt;cc.z = (x == 0);             state-&gt;cc.s = (0x80 == (x &amp; 0x80));             \/\/\u0418\u0437 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 p - \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c         state-&gt;cc.p = parity(x, 8);             state-&gt;cc.cy = (state-&gt;a &lt; opcode[1]);             state-&gt;pc++;             }             break;<\/code><\/pre>\n<p>  <\/p>\n<h3>CMC \u0438 STC<\/h3>\n<p>  \u041d\u0430 \u043d\u0438\u0445 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430. \u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0438 \u0441\u0431\u0440\u043e\u0441\u0430 \u0444\u043b\u0430\u0433\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430.<\/p>\n<h1>\u0413\u0440\u0443\u043f\u043f\u0430 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043e\u0441\u043e\u0431\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434<\/h1>\n<p>  \u042d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u043d\u0438 \u043a \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438. \u042f \u0443\u043f\u043e\u043c\u044f\u043d\u0443 \u0438\u0445 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b, \u043d\u043e, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u043a \u043d\u0438\u043c \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0447\u043d\u0451\u043c \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u00ab\u0436\u0435\u043b\u0435\u0437\u043e\u00bb Space Invaders.<\/p>\n<ul>\n<li>EI \u0438 DI \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f. \u042f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0444\u043b\u0430\u0433 interrupt_enabled, \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\/\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.<\/li>\n<li>\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e RIM \u0438 SIM \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u043d\u043e \u0432 Space Invaders \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0438\u0445 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/li>\n<li>HLT \u2014 \u044d\u0442\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432. \u041d\u0435 \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 quit (\u0438\u043b\u0438 exit(0)), \u043a\u043e\u0433\u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/li>\n<li>IN \u0438 OUT \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u043e\u043a\u0430 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0438\u0445, \u043d\u043e \u043e\u043d\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. (\u041f\u043e\u0437\u0436\u0435 \u043c\u044b \u043a \u043d\u0438\u043c \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f).<\/li>\n<li>NOP \u2014 \u044d\u0442\u043e \u00abno operation\u00bb. \u041e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0439 NOP \u2014 \u044d\u0442\u043e \u0442\u0430\u0439\u043c\u0438\u043d\u0433 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u0435 \u0446\u0438\u043a\u043b\u0430 \u0426\u041f).<\/li>\n<\/ul>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 NOP \u2014 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u0434 ROM \u0438\u0433\u0440\u044b. \u041c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043e\u043f\u043a\u043e\u0434\u044b, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CALL \u0438 JMP (\u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c\u0438, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0441\u0434\u0432\u0438\u043d\u0435\u0442\u0441\u044f). \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e NOP \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043a\u043e\u0434\u0430. <em>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u0434 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435! \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u043d\u0430\u0439\u0434\u044f \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 ROM \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 JMP.<\/em><\/p>\n<h1>\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0435\u043a\u043e\u0432<\/h1>\n<p>  \u041c\u044b \u0443\u0436\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0443 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u0442\u0435\u043a\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u043c\u043d\u043e\u0439, \u0442\u043e \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0435\u0433\u043a\u043e.<\/p>\n<h3>PUSH \u0438 POP<\/h3>\n<p>  PUSH \u0438 POP \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u0430\u0440\u0430\u043c\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. PUSH \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u0441\u0442\u0435\u043a, \u0430 POP \u0431\u0435\u0440\u0451\u0442 2 \u0431\u0430\u0439\u0442\u0430 \u0438\u0437 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0441\u0442\u0435\u043a\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043f\u0430\u0440\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u043f\u043a\u043e\u0434\u0430 \u0434\u043b\u044f PUSH \u0438 POP, \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043f\u0430\u0440: BC, DE, HL \u0438 PSW. PSW \u2014 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u0430\u044f \u043f\u0430\u0440\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0444\u043b\u0430\u0433\u043e\u0432 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044f \u0438 \u043a\u043e\u0434\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u0412\u043e\u0442 \u043c\u043e\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f PUSH \u0438 POP \u0434\u043b\u044f BC \u0438 PSW. \u0412 \u043d\u0435\u0439 \u043d\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u2014 \u043d\u0435 \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u0445\u0438\u0442\u0440\u043e\u0435.<\/p>\n<pre><code class=\"cpp\">        case 0xc1:                      \/\/POP B                 {                     state-&gt;c = state-&gt;memory[state-&gt;sp];                     state-&gt;b = state-&gt;memory[state-&gt;sp+1];                     state-&gt;sp += 2;                 }                 break;              case 0xc5:                      \/\/PUSH B                 {                 state-&gt;memory[state-&gt;sp-1] = state-&gt;b;                 state-&gt;memory[state-&gt;sp-2] = state-&gt;c;                 state-&gt;sp = state-&gt;sp - 2;                 }                 break;              case 0xf1:                      \/\/POP PSW                 {                     state-&gt;a = state-&gt;memory[state-&gt;sp+1];                     uint8_t psw = state-&gt;memory[state-&gt;sp];                     state-&gt;cc.z  = (0x01 == (psw &amp; 0x01));                     state-&gt;cc.s  = (0x02 == (psw &amp; 0x02));                     state-&gt;cc.p  = (0x04 == (psw &amp; 0x04));                     state-&gt;cc.cy = (0x05 == (psw &amp; 0x08));                     state-&gt;cc.ac = (0x10 == (psw &amp; 0x10));                     state-&gt;sp += 2;                 }                 break;              case 0xf5:                      \/\/PUSH PSW                 {                 state-&gt;memory[state-&gt;sp-1] = state-&gt;a;                 uint8_t psw = (state-&gt;cc.z |                                 state-&gt;cc.s &lt;&lt; 1 |                                 state-&gt;cc.p &lt;&lt; 2 |                                 state-&gt;cc.cy &lt;&lt; 3 |                                 state-&gt;cc.ac &lt;&lt; 4 );                 state-&gt;memory[state-&gt;sp-2] = psw;                 state-&gt;sp = state-&gt;sp - 2;                 }                 break;<\/code><\/pre>\n<p>  <\/p>\n<h3>SPHL \u0438 XTHL<\/h3>\n<p>  \u0412 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u0442\u0435\u043a\u043e\u0432 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0434\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2014 SPHL \u0438 XTHL.<\/p>\n<ul>\n<li><code>SPHL<\/code> \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 HL \u0432 SP (\u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044f SP \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441).<\/li>\n<li><code>XTHL<\/code> \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0435 \u0441\u0442\u0435\u043a\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u0440\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 HL. \u0417\u0430\u0447\u0435\u043c \u0431\u044b \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u042f \u043d\u0435 \u0437\u043d\u0430\u044e.<\/li>\n<\/ul>\n<p>  <\/p>\n<h1>\u0415\u0449\u0451 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043e \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445<\/h1>\n<p>  \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0434\u043d\u043e \u0438\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0432\u044b\u0431\u043e\u0440 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u0447\u0438\u0441\u0435\u043b \u2014 \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0438 \u043a\u0430\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440. \u0414\u043b\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0426\u041f \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0442\u0438\u043f\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0426\u041f.<\/p>\n<h3>\u0417\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0438 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/h3>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e hex-\u0447\u0438\u0441\u043b\u0430\u0445, \u0442\u043e \u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u0438\u0445 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u0430\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u0430\u044f \u0446\u0438\u0444\u0440\u0430 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438\u043c\u0435\u043b\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0447\u0438\u0442\u0430\u043b\u0430\u0441\u044c \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438 (\u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0434\u0432\u043e\u0439\u043a\u0438, \u0447\u0435\u0442\u0432\u0451\u0440\u043a\u0438 \u0438 \u0442.\u0434.).<\/p>\n<p>  \u041c\u044b \u043a\u0430\u0441\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u0441\u0442\u0430\u0440\u0448\u0435\u043c\u0443 \u0431\u0438\u0442\u0443 \u0447\u0438\u0441\u043b\u0430 (most significant bit, MSB). \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0432\u0435\u043d \u043e\u0434\u043d\u043e\u043c\u0443 \u0431\u0430\u0439\u0442\u0443, \u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0431\u0438\u0442\u0430 MSB \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c MSB \u2014 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0438\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0430 MSB \u0440\u0430\u0432\u0435\u043d \u043e\u0434\u043d\u043e\u043c\u0443, \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0447\u0438\u0441\u043b\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u00ab\u041d\u0415\u00bb \u0434\u043b\u044f hex-\u0447\u0438\u0441\u0435\u043b, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0443.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 hex-\u0447\u0438\u0441\u043b\u0430 0x80 \u0431\u0438\u0442 MSB \u0437\u0430\u0434\u0430\u043d, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c. \u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u00ab\u041d\u0415\u00bb \u0447\u0438\u0441\u043b\u0430 0x80 \u2014 \u044d\u0442\u043e 0x7f, \u0438\u043b\u0438 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 127. 127+1 = 128. \u0422\u043e \u0435\u0441\u0442\u044c 0x80 \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u2014 \u044d\u0442\u043e -128. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: 0xC5. Not(0xC5) = 0x3A = \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 58 +1 = \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 59. \u0422\u043e \u0435\u0441\u0442\u044c 0xC5 \u2014 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 -59.<\/p>\n<p>  \u0423\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0447\u0438\u0441\u043b\u0430\u0445 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043d\u0438\u043c\u0438 \u043a\u0430\u043a \u0441 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438, \u0438 \u043e\u043d\u0438 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e <em>\u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/em>. \u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e \u0437\u043d\u0430\u043a\u0430\u043c\u0438. \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u043f\u0430\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u044d\u0442\u043e.<\/p>\n<pre>   \u041f\u0440\u0438\u043c\u0435\u0440 1       decimal   hex           binary           -3       0xFD      1111 1101        +  10       0x0A         +0000 1010        -----                   -----------            7       0x07       1 0000 0111                            ^ \u042d\u0442\u043e \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u0431\u0438\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430     \u041f\u0440\u0438\u043c\u0435\u0440 2           decimal   hex           binary          -59       0xC5      1100 0101        +  33       0x21         +0010 0001        -----                   -----------          -26       0xE6         1110 0110<\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 1 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0438 10 \u0438 -3 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 7. \u0411\u044b\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0444\u043b\u0430\u0433 C. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 2 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u044b\u043b \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e: Not(0xE6) = 0x19 = 25 + 1 = 26. <code>0xE6 = -26<\/code> \u0412\u0437\u0440\u044b\u0432 \u043c\u043e\u0437\u0433\u0430!<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4\">\u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438<\/a>.<\/p>\n<h3>\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>  \u0412 \u044f\u0437\u044b\u043a\u0435 C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u043e\u0434 \u044d\u0442\u043e\u0442 \u0442\u0438\u043f \u0431\u0430\u0439\u0442\u043e\u0432. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438\/\u043e\u043b\u0434\u0441\u043a\u0443\u043b\u044c\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 C \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f char, int \u0438 long, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0445 \u0434\u0440\u0443\u0437\u044c\u044f unsigned char, unsigned int \u0438 unsigned long. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u0445 \u044d\u0442\u0438 \u0442\u0438\u043f\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u0435\u0441\u0442\u044c stdint.h, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c int8_t, uint8_t \u0438 \u0442.\u0434.<\/p>\n<p>  \u0420\u0430\u0437\u043c\u0435\u0440 \u0446\u0435\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 \u043d\u0435\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0446\u0435\u043b\u044b\u0445 \u0432 8 \u0431\u0438\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u0430 \u043e\u0442 0 \u0434\u043e 255. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 hex, \u0442\u043e \u044d\u0442\u043e \u043e\u0442 0x00 \u0434\u043e 0xFF. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 0xFF \u00ab\u0432\u0441\u0435 \u0431\u0438\u0442\u044b \u0437\u0430\u0434\u0430\u043d\u044b\u00bb, \u0438 \u043e\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u043c\u0443 255, \u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u2014 0-255. \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u2014 \u0447\u0438\u0441\u043b\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0438 \u0432\u0441\u0435\u0445 \u0431\u0438\u0442\u043e\u0432.<\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b<\/th>\n<th>Hex<\/th>\n<\/tr>\n<tr>\n<td>8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>0-255<\/td>\n<td>0x0-0xFF<\/td>\n<\/tr>\n<tr>\n<td>8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>-128-127<\/td>\n<td>0x80-0x7F<\/td>\n<\/tr>\n<tr>\n<td>16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>0-65535<\/td>\n<td>0x0-0xFFFF<\/td>\n<\/tr>\n<tr>\n<td>16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>-32768-32767<\/td>\n<td>0x8000-0x7FFF<\/td>\n<\/tr>\n<tr>\n<td>32-\u0431\u0438\u0442\u043d\u043e\u0435 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>0-4294967295<\/td>\n<td>0x0-0xFFFFFFFF<\/td>\n<\/tr>\n<tr>\n<td>32-\u0431\u0438\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<\/td>\n<td>-2147483648-2147483647<\/td>\n<td>0x80000000-0x7FFFFFFF<\/td>\n<\/tr>\n<\/table>\n<p>  \u0415\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0442\u043e, \u0447\u0442\u043e -1 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u043c \u0442\u0438\u043f\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u0431\u0438\u0442\u044b (0xFF \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430, 0xFFFF \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438 0xFFFFFFFF \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e 32-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430). \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438, \u0442\u043e \u043f\u0440\u0438 \u0432\u0441\u0435\u0445 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0442\u0430\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0438\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0445 \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f 8-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 uint8_t.<\/p>\n<h3>\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430: \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d gdb, \u0442\u043e \u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u041d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441 # \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0439 \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <code> #\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \/c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c gdb \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<br \/>   (gdb) print \/c 0xFD <br \/>   $1 = -3 '?'<\/p>\n<p>  #\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \/x, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c gdb \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 hex<br \/>   #\u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \"p\" \u0432\u043c\u0435\u0441\u0442\u043e \"print\" <br \/>   (gdb) p \/c 0xA <br \/>   $2 = 10 '\\n' <\/p>\n<p>  #\u042d\u0442\u043e \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 2 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434\"<br \/>   (gdb) p \/c 0xC5 <br \/>   $3 = -59 '?' <br \/>   (gdb) p \/c 0xC5+0x21 <br \/>   $4 = -26 '?' <\/p>\n<p>  #\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c print \u0431\u0435\u0437 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430, \u0442\u043e gdb \u043e\u0442\u0432\u0435\u0442\u0438\u0442 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<br \/>   (gdb) p 0x21 <br \/>   $9 = 33 <\/p>\n<p>  #\u042d\u0442\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0437 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435, \u043d\u043e \u044f \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044e gdb, <br \/>   #\u0447\u0442\u043e \u043e\u043d\u0438 \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435, \u043e\u043d \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u043a\u0430\u043a \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<br \/>   (gdb) p 0xc5 <br \/>   $5 = 197 #\u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<br \/>   (gdb) p \/c 0xc5 <br \/>   $3 = -59 '?' #\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435<br \/>   (gdb) p 0xfd <br \/>   $6 = 253 <\/p>\n<p>  #\u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e 32-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435) <br \/>   (gdb) p \/x -3 <br \/>   $7 = 0xfffffffd <\/p>\n<p>  # \u0414\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<br \/>   (gdb) print (char) 0xff <br \/>   $1 = -1 '?' <br \/>   # \u0414\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1 \u0431\u0430\u0439\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<br \/>   (gdb) print (unsigned char) 0xff <br \/>   $2 = 255 '?'<\/code> <\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 hex-\u0447\u0438\u0441\u043b\u0430\u043c\u0438, \u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u044e \u044d\u0442\u043e \u0432 gdb \u2014 \u0430 \u044d\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. \u0422\u0430\u043a \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0441\u043a\u0438\u0439 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0441 GUI. \u041d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0441 Linux (\u0438 Mac OS X), \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e gdb, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u00abgdb\u00bb. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c XCode \u043d\u0430 OS X, \u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u043d\u0443\u0442\u0440\u0438 XCode (\u0442\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 printf). \u0412 Windows \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a gdb \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437 Cygwin.<\/p>\n<h1>\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/h1>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0432\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0434\u043e\u043b\u0433\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0430\u043c\u0438 \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u2014 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u0442\u0435 \u043f\u043e\u043b\u043d\u0443\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e 8080, \u0438\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e, \u0442\u043e \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u042f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0438\u0445 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>  \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u0433\u0440\u043e\u0439. \u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0442\u0443 \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e switch, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u041e\u0431\u043e\u043b\u043e\u0447\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u00bb. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043f\u043e\u043a\u0430 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<ol>\n<li>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441 ROM Space Invaders<\/li>\n<li>\u0412\u044b\u0437\u043e\u0432 <code>UnimplementedInstruction()<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0445\u043e\u0434, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u0430<\/li>\n<li>\u042d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e<\/li>\n<li>Goto 1<\/li>\n<\/ol>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u044f \u0441\u0434\u0435\u043b\u0430\u043b, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u043e\u0434 \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430. \u0422\u0430\u043a \u044f \u0441\u043c\u043e\u0433 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439:<\/p>\n<pre><code class=\"cpp\">   int Emulate8080Op(State8080* state)        {            unsigned char *opcode = &amp;state-&gt;memory[state-&gt;pc];            Disassemble8080Op(state-&gt;memory, state-&gt;pc);            switch (*opcode)            {                case 0x00:   \/\/NOP                \/* ... *\/            }            \/* \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 *\/            printf(\"\\tC=%d,P=%d,S=%d,Z=%d\\n\", state-&gt;cc.cy, state-&gt;cc.p,                state-&gt;cc.s, state-&gt;cc.z);            printf(\"\\tA $%02x B $%02x C $%02x D $%02x E $%02x H $%02x L $%02x SP %04x\\n\",                state-&gt;a, state-&gt;b, state-&gt;c, state-&gt;d,                state-&gt;e, state-&gt;h, state-&gt;l, state-&gt;sp);        }<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0441\u0435\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u0444\u043b\u0430\u0433\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.<\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438: \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 50 \u0442\u044b\u0441\u044f\u0447 \u043a\u043e\u043c\u0430\u043d\u0434, \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043e\u043f\u043a\u043e\u0434\u043e\u0432 8080. \u042f \u0434\u0430\u0436\u0435 \u0434\u0430\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u043f\u043a\u043e\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<table>\n<tr>\n<th>\u041e\u043f\u043a\u043e\u0434<\/th>\n<th>\u041a\u043e\u043c\u0430\u043d\u0434\u0430<\/th>\n<\/tr>\n<tr>\n<td>0x00<\/td>\n<td>NOP<\/td>\n<\/tr>\n<tr>\n<td>0x01<\/td>\n<td>LXI B,D16<\/td>\n<\/tr>\n<tr>\n<td>0x05<\/td>\n<td>DCR B<\/td>\n<\/tr>\n<tr>\n<td>0x06<\/td>\n<td>MVI B,D8<\/td>\n<\/tr>\n<tr>\n<td>0x09<\/td>\n<td>DAD B<\/td>\n<\/tr>\n<tr>\n<td>0x0d<\/td>\n<td>DCR C<\/td>\n<\/tr>\n<tr>\n<td>0x0e<\/td>\n<td>MVI C,D8<\/td>\n<\/tr>\n<tr>\n<td>0x0f<\/td>\n<td>RRC<\/td>\n<\/tr>\n<tr>\n<td>0x11<\/td>\n<td>LXI D,D16<\/td>\n<\/tr>\n<tr>\n<td>0x13<\/td>\n<td>INX D<\/td>\n<\/tr>\n<tr>\n<td>0x19<\/td>\n<td>DAD D<\/td>\n<\/tr>\n<tr>\n<td>0x1a<\/td>\n<td>LDAX D<\/td>\n<\/tr>\n<tr>\n<td>0x21<\/td>\n<td>LXI H,D16<\/td>\n<\/tr>\n<tr>\n<td>0x23<\/td>\n<td>INX H<\/td>\n<\/tr>\n<tr>\n<td>0x26<\/td>\n<td>MVI H,D8<\/td>\n<\/tr>\n<tr>\n<td>0x29<\/td>\n<td>DAD H<\/td>\n<\/tr>\n<tr>\n<td>0x31<\/td>\n<td>LXI SP,D16<\/td>\n<\/tr>\n<tr>\n<td>0x32<\/td>\n<td>STA adr<\/td>\n<\/tr>\n<tr>\n<td>0x36<\/td>\n<td>MVI M,D8<\/td>\n<\/tr>\n<tr>\n<td>0x3a<\/td>\n<td>LDA adr<\/td>\n<\/tr>\n<tr>\n<td>0x3e<\/td>\n<td>MVI A,D8<\/td>\n<\/tr>\n<tr>\n<td>0x56<\/td>\n<td>MOV D,M<\/td>\n<\/tr>\n<tr>\n<td>0x5e<\/td>\n<td>MOV E,M<\/td>\n<\/tr>\n<tr>\n<td>0x66<\/td>\n<td>MOV H,M<\/td>\n<\/tr>\n<tr>\n<td>0x6f<\/td>\n<td>MOV L,A<\/td>\n<\/tr>\n<tr>\n<td>0x77<\/td>\n<td>MOV M,A<\/td>\n<\/tr>\n<tr>\n<td>0x7a<\/td>\n<td>MOV A,D<\/td>\n<\/tr>\n<tr>\n<td>0x7b<\/td>\n<td>MOV A,E<\/td>\n<\/tr>\n<tr>\n<td>0x7c<\/td>\n<td>MOV A,H<\/td>\n<\/tr>\n<tr>\n<td>0x7e<\/td>\n<td>MOV A,M<\/td>\n<\/tr>\n<tr>\n<td>0xa7<\/td>\n<td>ANA A<\/td>\n<\/tr>\n<tr>\n<td>0xaf<\/td>\n<td>XRA A<\/td>\n<\/tr>\n<tr>\n<td>0xc1<\/td>\n<td>POP B<\/td>\n<\/tr>\n<tr>\n<td>0xc2<\/td>\n<td>JNZ adr<\/td>\n<\/tr>\n<tr>\n<td>0xc3<\/td>\n<td>JMP adr<\/td>\n<\/tr>\n<tr>\n<td>0xc5<\/td>\n<td>PUSH B<\/td>\n<\/tr>\n<tr>\n<td>0xc6<\/td>\n<td>ADI D8<\/td>\n<\/tr>\n<tr>\n<td>0xc9<\/td>\n<td>RET<\/td>\n<\/tr>\n<tr>\n<td>0xcd<\/td>\n<td>CALL adr<\/td>\n<\/tr>\n<tr>\n<td>0xd1<\/td>\n<td>POP D<\/td>\n<\/tr>\n<tr>\n<td>0xd3<\/td>\n<td>OUT D8<\/td>\n<\/tr>\n<tr>\n<td>0xd5<\/td>\n<td>PUSH D<\/td>\n<\/tr>\n<tr>\n<td>0xe1<\/td>\n<td>POP H<\/td>\n<\/tr>\n<tr>\n<td>0xe5<\/td>\n<td>PUSH H<\/td>\n<\/tr>\n<tr>\n<td>0xe6<\/td>\n<td>ANI D8<\/td>\n<\/tr>\n<tr>\n<td>0xeb<\/td>\n<td>XCHG<\/td>\n<\/tr>\n<tr>\n<td>0xf1<\/td>\n<td>POP PSW<\/td>\n<\/tr>\n<tr>\n<td>0xf5<\/td>\n<td>PUSH PSW<\/td>\n<\/tr>\n<tr>\n<td>0xfb<\/td>\n<td>EI<\/td>\n<\/tr>\n<tr>\n<td>0xfe<\/td>\n<td>CPI D8<\/td>\n<\/tr>\n<\/table>\n<p>  \u042d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c 50 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0438 10 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e.<\/p>\n<h3>\u041e\u0442\u043b\u0430\u0434\u043a\u0430<\/h3>\n<p>  \u041d\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0438 \u043f\u043b\u043e\u0445\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438. \u0412\u0430\u0448 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0447\u0442\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0430 \u0431\u0430\u0433\u0438 \u0432 \u0442\u0430\u043a\u043e\u043c \u043a\u043e\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u0435\u0434\u0451\u0442 \u0441\u0435\u0431\u044f \u043f\u043b\u043e\u0445\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0438\u043b\u0438 \u0432\u044b\u0437\u043e\u0432, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043a \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443), \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443, \u0438\u0437\u0443\u0447\u0438\u0432 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434.<\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u2014 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441 \u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u0430\u0433\u0430\u043c\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c. \u041c\u043e\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u0435 \u0432\u0440\u0435\u043c\u044f, \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0435 \u043c\u043e\u0439 \u043a\u043e\u0434 \u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441:<\/p>\n<ol>\n<li>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e<\/li>\n<li>\u0414\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/li>\n<li>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0430\u0448 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0441 \u0432\u0430\u0448\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c<\/li>\n<li>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u043e\u0439 \u0441 \u043c\u043e\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c<\/li>\n<li>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0434\u0432\u0430 \u043d\u0430\u0448\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/li>\n<li>\u0418\u0449\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043b\u044e\u0431\u044b\u0445 \u043e\u0442\u043b\u0438\u0447\u0438\u044f\u0445<\/li>\n<li>goto 3<\/li>\n<\/ol>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <a href=\"http:\/\/bluishcoder.co.nz\/js8080\/\">\u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430<\/a>. \u042d\u0442\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080 \u043d\u0430 Javascript, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0436\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d ROM Space Invaders. \u0412\u043e\u0442 \u043a\u0430\u043a\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441:<\/p>\n<ol>\n<li>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e Space Invaders, \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u00abSpace Invaders\u00bb<\/li>\n<li>\u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u00abRun 1\u00bb, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/li>\n<li>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 \u0441\u0432\u043e\u0451\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435<\/li>\n<li>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0441 \u0432\u0430\u0448\u0438\u043c<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, goto 2<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u0442\u043e \u0432\u0430\u0448\u0430 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u0430. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0435\u0451, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0447\u043d\u0438\u0442\u0435 \u0437\u0430\u043d\u043e\u0432\u043e \u0441 \u0448\u0430\u0433\u0430 1.<\/li>\n<\/ol>\n<p>  \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 8080. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043b\u0433\u0430\u0442\u044c \u2014 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u043b\u0433\u0438\u043c. \u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430\u043c\u0438 \u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043d\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043e\u0434, \u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0445 30 \u0442\u044b\u0441\u044f\u0447 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u043e\u043a\u043e\u043b\u043e $1a5f. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"http:\/\/bluishcoder.co.nz\/js8080\/\">\u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043d\u0430 javascript<\/a>, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d. \u0423\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430, \u0441\u043f\u0443\u0441\u0442\u044f 50 \u0442\u044b\u0441\u044f\u0447 \u043a\u043e\u043c\u0430\u043d\u0434, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435:<\/p>\n<pre><code>   0ada LDA    $20c0        0add ANA    A        0ade JNZ    $0ada<\/code><\/pre>\n<p>  \u041e\u043d \u0436\u0434\u0451\u0442, \u043f\u043e\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 $20c0 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u043b\u044c. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u043e\u0434 \u0432 \u044d\u0442\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 $20c0, \u0442\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b \u043e\u0442\u043a\u0443\u0434\u0430-\u0442\u043e \u0435\u0449\u0451. \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u00ab\u0436\u0435\u043b\u0435\u0437\u0430\u00bb \u0430\u0440\u043a\u0430\u0434\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430.<\/p>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u044b \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0443, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u0448 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0426\u041f \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b.<\/p>\n<p>  \u0414\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"http:\/\/github.com\/kpmiller\/emulator101\/blob\/master\/8080emu-first50.c\">\u043c\u043e\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438<\/a>.<\/p>\n<h1>\u041f\u043e\u043b\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f 8080<\/h1>\n<p>  \u0423\u0440\u043e\u043a, \u0441\u0442\u043e\u0438\u0432\u0448\u0438\u0439 \u043c\u043d\u0435 \u043c\u043d\u043e\u0433\u043e\u0433\u043e: \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u041f\u041e. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0442\u043e \u043e\u043d\u0430 \u0442\u043e\u0447\u043d\u043e \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0439. \u0418 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0442 \u0435\u0451 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 8080 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. \u042f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b <a href=\"http:\/\/brainwagon.org\/2011\/09\/08\/more-on-my-8080-emulator\/\">\u043a\u043e\u0434 \u0434\u043b\u044f 8080<\/a> \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c cpudiag.asm, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080.<\/p>\n<p>  \u042f \u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ol>\n<li>\u042f \u0445\u043e\u0442\u0435\u043b, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041d\u0435 \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 cpudiag.asm \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<\/li>\n<li>\u041a\u0430\u043a \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043a\u0440\u043e\u043f\u043e\u0442\u043b\u0438\u0432\u044b\u0439. \u0414\u0443\u043c\u0430\u044e, \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u0441\u043f\u044b\u0442\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0435\u043c\u0443 \u044d\u0442\u0438 \u0448\u0430\u0433\u0438.<\/li>\n<\/ol>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u043b\u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430 \u0442\u0435\u0441\u0442\u0430<\/h3>\n<p>  \u042f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u0430\u0440\u0443 \u0432\u0435\u0449\u0435\u0439, \u043d\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <a href=\"http:\/\/sensi.org\/~svo\/i8080\/\">\u044d\u0442\u043e\u0439 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a>. \u042f \u0432\u0441\u0442\u0430\u0432\u0438\u043b \u0442\u0435\u043a\u0441\u0442 cpudiag.asm \u0432 \u043b\u0435\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c, \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0430\u0441\u044c \u043c\u0438\u043d\u0443\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430, \u043d\u043e \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u00abMake Beautiful Code\u00bb \u0432\u043d\u0438\u0437\u0443 \u0441\u043b\u0435\u0432\u0430, \u044f \u0441\u043a\u0430\u0447\u0430\u043b \u0444\u0430\u0439\u043b \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c test.bin, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c 8080. \u042f \u0441\u043c\u043e\u0433 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u043c.<\/p>\n<p>  <a href=\"http:\/\/www.emulator101.com\/files\/cpudiag.asm\">\u0421\u043a\u0430\u0447\u0430\u0442\u044c cpudiag.asm<\/a> \u0441 \u0437\u0435\u0440\u043a\u0430\u043b\u0430 \u043d\u0430 \u043c\u043e\u0451\u043c \u0441\u0430\u0439\u0442\u0435.<\/p>\n<p>  <a href=\"http:\/\/www.emulator101.com\/files\/cpudiag.bin\">\u0421\u043a\u0430\u0447\u0430\u0442\u044c cpudiag.bin<\/a> (\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 8080) \u0441 \u043c\u043e\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430.<\/p>\n<h3>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0435\u0441\u0442\u0430 \u0432 \u043c\u043e\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/h3>\n<p>  \u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 invaders.* \u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e \u044d\u0442\u043e\u0442 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<p>  \u0422\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0430 <code>ORG 00100H<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0444\u0430\u0439\u043b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0441 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 0x100 hex. \u042f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u043f\u0438\u0441\u0430\u043b \u043a\u043e\u0434 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 8080, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430. \u041c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432\u0441\u0435\u0433\u043e \u043c\u0438\u043d\u0443\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c\u0438 \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u0441 0x100.<\/p>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u043e\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441 \u043d\u0443\u043b\u044f, \u0442\u043e \u044f \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443. \u0412\u0441\u0442\u0430\u0432\u0438\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e \u043d\u0443\u043b\u0435\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 hex-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>JMP $0100<\/code>, \u044f \u0441 \u044d\u0442\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f. (\u0418\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c PC \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0x100.)<\/p>\n<p>  \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u044f \u043d\u0430\u0448\u0451\u043b \u0432 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0431\u0430\u0433. \u0414\u0443\u043c\u0430\u044e, \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 <code>STACK EQU TEMPP+256<\/code>, \u043d\u043e \u044f \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d. \u041a\u0430\u043a \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e, \u0441\u0442\u0435\u043a \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 $6ad, \u0430 \u043f\u0435\u0440\u0432\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e PUSH \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u0434. \u042f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043b, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u043e\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0430 \u043d\u0430 0x100, \u043a\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b \u044d\u0442\u043e, \u0432\u0441\u0442\u0430\u0432\u0438\u0432 \u00ab0x7\u00bb \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u0430, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0442\u0435\u043a\u0430.<\/p>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0432 \u0441\u0432\u043e\u0451\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 DAA \u0438\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441, \u044f \u0438\u0437\u043c\u0435\u043d\u044f\u044e \u043a\u043e\u0434, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 (\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u043c \u0435\u0451 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JMP).<\/p>\n<pre><code class=\"cpp\">    ReadFileIntoMemoryAt(state, \"\/Users\/kpmiller\/Desktop\/invaders\/cpudiag.bin\", 0x100);      \/\/\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e JMP 0x100         state-&gt;memory[0]=0xc3;         state-&gt;memory[1]=0;         state-&gt;memory[2]=0x01;          \/\/Fix the stack pointer from 0x6ad to 0x7ad     \/\/ this 0x06 byte 112 in the code, which is         \/\/ byte 112 + 0x100 = 368 in memory         state-&gt;memory[368] = 0x7;          \/\/\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 DAA     state-&gt;memory[0x59c] = 0xc3; \/\/JMP         state-&gt;memory[0x59d] = 0xc2;         state-&gt;memory[0x59e] = 0x05;<\/code><\/pre>\n<p>  <\/p>\n<h3>\u0422\u0435\u0441\u0442 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u044b\u0432\u043e\u0434<\/h3>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043e\u0442 \u041e\u0421 CP\/M. \u042f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0443 CP\/M \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 $0005, \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u043c\u043e\u044e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e CALL, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u0432\u0441\u0451 \u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043d\u043e \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438. \u041c\u043e\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f CALL \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">        case 0xcd:                      \/\/CALL \u0430\u0434\u0440\u0435\u0441    #ifdef FOR_CPUDIAG                 if (5 ==  ((opcode[2] &lt;&lt; 8) | opcode[1]))                 {                     if (state-&gt;c == 9)                     {                         uint16_t offset = (state-&gt;d&lt;&lt;8) | (state-&gt;e);                         char *str = &amp;state-&gt;memory[offset+3];  \/\/\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u0430\u0439\u0442\u044b-\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b                     while (*str != '$')                             printf(\"%c\", *str++);                         printf(\"\\n\");                     }                     else if (state-&gt;c == 2)                     {                         \/\/\u0432\u0438\u0434\u0435\u043b \u044d\u0442\u043e \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043b, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c                     printf (\"print char routine called\\n\");                     }                 }                 else if (0 ==  ((opcode[2] &lt;&lt; 8) | opcode[1]))                 {                     exit(0);                 }                 else        #endif                 {                 uint16_t    ret = state-&gt;pc+2;                 state-&gt;memory[state-&gt;sp-1] = (ret &gt;&gt; 8) &amp; 0xff;                 state-&gt;memory[state-&gt;sp-2] = (ret &amp; 0xff);                 state-&gt;sp = state-&gt;sp - 2;                 state-&gt;pc = (opcode[2] &lt;&lt; 8) | opcode[1];                 }                     break;<\/code><\/pre>\n<p>  \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0432 \u0441\u0432\u043e\u0451\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0431\u044b\u043b\u0438 \u0431\u044b \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0432 \u0438\u0433\u0440\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0431\u044b \u0431\u044b\u043b\u0438, \u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043d\u043e.<\/p>\n<p>  \u042f \u043f\u043e\u0448\u0451\u043b \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0432\u0441\u0435 \u043e\u043f\u043a\u043e\u0434\u044b (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c DAA \u0438 \u0435\u0433\u043e \u0434\u0440\u0443\u0437\u0435\u0439). \u0423\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043c\u043e\u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u043d\u044f\u043b\u0438 \u0443 \u043c\u0435\u043d\u044f 3-4 \u0447\u0430\u0441\u0430. \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 \u2014 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0448\u0451\u043b \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442, \u044f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 4 \u0447\u0430\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0438, \u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u041e\u0434\u043d\u0430\u043a\u043e \u0437\u043d\u0430\u043d\u0438\u0435 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u2014 \u0442\u043e\u0436\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043d\u0430\u0432\u044b\u043a, \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043d\u0435\u043c\u0443.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043b\u0438 \u043e\u043d \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c, \u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u043c\u0438 \u0441 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041a\u043e\u0433\u0434\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p><\/div>\n<p>        <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/post\/418699\/\"> https:\/\/habr.com\/post\/418699\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/418699\/\" class=\"post__text post__text-html js-mediator-article\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4ec\/e50\/f3a\/4ece50f3a555bfb39878326ec26addd5.jpg\" alt=\"image\"><\/div>\n<p>  \u0427\u0430\u0441\u0442\u0438 <a href=\"https:\/\/habr.com\/post\/418635\/\">\u043f\u0435\u0440\u0432\u0430\u044f<\/a> \u0438 <a href=\"https:\/\/habr.com\/post\/418683\/\">\u0432\u0442\u043e\u0440\u0430\u044f<\/a>.<\/p>\n<h1>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080<\/h1>\n<p>  <\/p>\n<h1>\u041e\u0431\u043e\u043b\u043e\u0447\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/h1>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 8080.<\/p>\n<p>  <em>\u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u043a\u043e\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043e\u0441\u0432\u043e\u0438\u0442\u0435\u0441\u044c \u0441 \u043d\u0438\u043c, \u0442\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/em><\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430. \u0422\u0430\u043a\u0436\u0435 \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0431\u043e\u0439 \u041e\u0417\u0423.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-287821","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/287821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=287821"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/287821\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=287821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=287821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=287821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}