{"resolved":true,"match_type":"uuid","source_type":"original_book","book_id":"38270854-596f-4a26-8183-db8c968c6020","title":"编码 隐匿在计算机软硬件背后的语言","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787121181184","requested_by":"printed_page","book":{"source_type":"original_book","book_id":"38270854-596f-4a26-8183-db8c968c6020","id":"38270854-596f-4a26-8183-db8c968c6020","uuid":"38270854-596f-4a26-8183-db8c968c6020","title":"编码 隐匿在计算机软硬件背后的语言","normalized_title":"编码隐匿在计算机软硬件背后的语言","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787121181184","isbns":["9787121181184","0123456789","6044921875","3039331000","0000000000","0000000000000"],"parsed":true,"ai_readable":true,"document_type":"book","page_count":438,"navigation_url":"https://workshop.closeclaw.top/ai/book/38270854-596f-4a26-8183-db8c968c6020","title_url":"https://workshop.closeclaw.top/ai/title/%E7%BC%96%E7%A0%81%20%E9%9A%90%E5%8C%BF%E5%9C%A8%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E8%83%8C%E5%90%8E%E7%9A%84%E8%AF%AD%E8%A8%80","fixed_page_url_template":"https://workshop.closeclaw.top/ai/book/38270854-596f-4a26-8183-db8c968c6020/page/{printed_page}","path_api_url_template":"https://workshop.closeclaw.top/api/ai/book/38270854-596f-4a26-8183-db8c968c6020/page/{printed_page}","read_url":"https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020","page_url":"https://workshop.closeclaw.top/api/ai/books/38270854-596f-4a26-8183-db8c968c6020/page","search_url":"https://workshop.closeclaw.top/api/ai/books/38270854-596f-4a26-8183-db8c968c6020/search"},"page":{"printed_page":228,"pdf_page":244,"physical_index":244,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"39bef588ece5d256a432732e1760e3ba9e07d124b1cff84d1f4337a61c2eb837"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"$$\n\\frac { 7 6 \\mathrm { h } } { 9 9 \\mathrm { h } }\n$$\n\n得到相同的结果99D7h。因此，如果我们把两个16位的数用这种方式保存在存储器中，就像下面这样：\n\n$$\n\\begin{array} { r l } & { \\begin{array} { r l } & { \\mathrm { i t s i g } } \\\\ & { \\mathrm { 0 0 0 0 } \\mathrm { h : } } \\\\ & { [ \\begin{array} { l l l } { \\mathrm { 1 0 h } } & { \\mathrm { l o a d } } & { \\mathrm { 0 0 0 0 h : } } \\\\ { \\mathrm { 2 0 h } } & { \\mathrm { A d d } } & { \\mathrm { 2 C h } } \\\\ { \\mathrm { 1 1 h } } & { \\mathrm { l o t e r e } } & { \\mathrm { 2 C h } } \\end{array} ] } \\end{array} } \\\\ & { \\begin{array} { r l } & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 1 0 h } } \\end{array} ] \\mathrm { ~ L o a d } } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 2 0 h } } \\end{array} ] \\mathrm { ~ L o a d } } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 1 1 h } } \\end{array} ] \\mathrm { ~ A d d } } \\\\ & { [ \\begin{array} { l } { 1 1 \\mathrm { h } } \\\\ { \\mathrm { 1 1 h } } \\end{array} ] \\mathrm { ~ H o r e } } \\end{array} } \\end{array} \\begin{array} { r l } & { \\mathrm { 2 0 h } } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 2 0 h } } \\end{array} ] \\times } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { \\overline { { ~ 7 } } t r } } \\\\ { \\mathrm { 4 1 h } } \\end{array} ] \\times } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 4 1 h } } \\end{array} ] \\times } \\end{array} \\begin{array} { r l } & { \\mathrm { 2 0 h } } \\\\ & { [ \\begin{array} { l } { 1 0 \\mathrm { h } } \\\\ { \\mathrm { 2 0 h } } \\end{array} ] \\times } \\\\ &  [ \\begin{array} { l }  1 0 \\mathrm { \\overline { { ~ 7 } } t r } \\mathrm { \\overline { { ~ 9 } } t r } \\mathrm { \\overline { { ~ 1 0 } } } \\mathrm { ~ \\overline { { ~ 8 } } t r } \\mathrm { \\overline { { ~ 1 0 } } } \\mathrm  ~  \\end{array} \\end{array}\n$$\n\n运算结果 D7h 将被保存到地址 0002h，而结果99h将被保存到地址0005h。\n\n当然并非所有的情况都是这样处理，只是上面的例子中用到了这种方法。如果要把76ABh和236Ch这两个16位的数相加该怎么做呢？在这个例子中，对两个数的低字节求和时将会产生一个进位：\n\n$$\n\\frac { \\mathbf { A B h } } { \\mathbf { 1 1 7 h } }\n$$\n\n产生的这个进位必须与两个数的高字节的和再相加：\n\n$$\n\\begin{array} { r } { \\mathbf { l h } } \\\\ { + 7 6 \\mathbf { h } } \\\\ { \\frac { + 2 3 \\mathbf { h } } { 9 \\mathbf { A } \\mathbf { h } } } \\end{array}\n$$\n\n最后的计算结果为9A17h。\n\n我们能够改进自动加法器的电路，使它可以正确地进行16位数的加法操作吗？答案是肯定的，我们需要做的仅仅是在第一步运算时保存低字节数运算的进位输出，并把它作为下一步高字节数运算的进位输入。如何保存1位呢？1位锁存器就是最好的选择了，该锁存器应该被称为进位锁存器（Carrylatch)。\n\n编码隐匿在计算机软硬件背后的语言\n\n228","previous_page":227,"next_page":229}