{"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":303,"pdf_page":319,"physical_index":319,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"6fa07ba17eef05a3ea8f7f51e88a788694c3d2a542ee95d073ea5444df30616d"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"与8080不同，6800没有设置奇偶标志位，而是设置了一个溢出标志位（Overflowflag)。上面的转移指令中有一些依赖于标志位的组合(combinations of flags)。\n\n当然，8080和6800的指令集是不同的，虽然这两款芯片于同一年发布，但它们是由属于不同公司的两组不同的工程师设计的。这就造成了它们之间的不兼容，因此它们不能执行对方的机器码，为一种芯片编写的汇编语言程序也不能在另一种芯片上执行。如何编写能在不同类型处理器上执行的计算机程序是第24章的主题。\n\n8080和6800的另一个有趣的区别是：在两个处理器中，LDA指令都从存储器的特定地址将数据加载到累加器。例如，在8080中，下面的字节序列：\n\n将把存储器地址347Bh处的字节加载到累加器。现在对比一下6800的LDA指令，它使用 6800 扩展寻址模式（6800 extended addressing mode):\n\n上面的这组字节序列将把存储器7B34h地址处的字节加载到累加器。\n\n两者的区别是很微妙的。当然，你可能已经注意到了操作码的不同：8080的操作码是3Ah，而6800的操作码是B6h。但是两种微处理器对紧跟在操作码后的地址的处理方式是不同的，8080假设低字节在前，高字节在后；而6800假设高字节在前，低字节在后。\n\nIntel和Motorola的微处理器在保存多字节数据问题上的根本区别从未得到解决。直到今天，英特尔的微处理器在保存多字节数据时，仍然把最低有效字节放在最前面（也就是说，在最低地址处)，而Motorola的微处理器在保存多字节数据时，仍然把最高有效字节放在最前面。\n\n这两种不同的方式分别称为little-endian（Intel方式）和 big-endian（Motorola方式）。\n\n19两种典型的微处理器\n\n303","previous_page":302,"next_page":304}