摘要: 本章在第14章端口基础上,讲解外部设备如何主动与CPU通信。外中断机制是CPU响应键盘、定时器等硬件事件的基础,也是实现多任务处理和实时响应的关键。 15.1 外中断的产生 CPU执行指令过程中,外部设备可能随时需要CPU处理(如键盘按下、时钟到点),这时通过外中断机制通知CPU。 两类外中断 类型 阅读全文
posted @ 2026-03-12 14:03 MachineGaming 阅读(3) 评论(0) 推荐(0)
摘要: 本章进入硬件交互层面,讲解如何通过端口与外部设备(如键盘、显示器、扬声器等)进行数据通信。端口是CPU与外设进行数据交换的桥梁。 14.1 端口的本质 端口是CPU对外部设备进行读写操作的地址。每个端口都有一个独立的地址(0~65535)。 关键特点: 端口与内存地址相互独立(虽然数值可能重叠) 访 阅读全文
posted @ 2026-03-12 13:57 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 本章在第12章内中断基础上,深入讲解由 int指令引发的软中断。这是汇编语言主动调用系统功能(如BIOS、DOS服务)的核心机制。 13.1 int指令的本质 int n 是显式触发中断的指令,n为中断类型码(0~255)。 执行过程(CPU自动完成): 获取中断类型码n 标志寄存器入栈 设置IF= 阅读全文
posted @ 2026-03-12 13:32 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 1. 标志寄存器概述 8086CPU的标志寄存器有16位,其中某些位有特定含义,其他位没有意义。本章重点介绍其中6个常用的标志位: 标志位 名称 位置 含义 ZF 零标志 第6位 运算结果是否为0 PF 奇偶标志 第2位 运算结果中1的个数是否为偶数 SF 符号标志 第7位 运算结果的正负(针对有符 阅读全文
posted @ 2026-03-12 10:57 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 本章的核心是讲解内中断机制。内中断是CPU在执行指令过程中,因内部突发事件而暂停当前程序,转而执行特定处理程序的一种机制。它是实现操作系统与程序交互、处理程序错误的基础。 12.1 内中断的产生 CPU内部有几种情况会立即触发中断: 除法错误:执行div或idiv指令时,如果除法结果溢出(商太大,寄 阅读全文
posted @ 2026-03-12 10:55 MachineGaming 阅读(4) 评论(0) 推荐(0)
摘要: 1. 子程序设计的基本概念 子程序(过程/函数)是实现模块化编程的基础。在汇编语言中,用call和ret指令实现子程序的调用与返回。 基本流程: 调用:call指令将下一条指令的地址(返回地址)压栈,然后转到子程序执行 返回:ret指令从栈中弹出返回地址,恢复到call指令的下一条指令继续执行 2. 阅读全文
posted @ 2026-03-11 14:28 MachineGaming 阅读(1) 评论(0) 推荐(0)
摘要: 第9章《转移指令的原理》是汇编语言中控制程序流程的核心章节。这一章深入讲解了CPU如何执行jmp、jcxz、loop等指令,以及这些指令背后的偏移地址修改原理。 以下是《汇编语言》第9章的详细总结: 1. 转移指令的分类 转移指令可以修改IP(或同时修改CS和IP),实现程序的跳转。8086CPU中 阅读全文
posted @ 2026-03-11 14:07 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 第8章《数据处理的两个基本问题》是汇编语言学习中非常核心的一章,它对前面的知识进行了系统性的总结和升华。本章围绕两个最基本的问题展开:要处理的数据在什么地方? 和 要处理的数据有多长?。 以下是《汇编语言》第8章的详细总结: 1. 两个基本问题 计算机进行数据处理时,必须明确回答两个问题: 问题一: 阅读全文
posted @ 2026-03-11 13:27 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 1. 逻辑指令:and 和 or 这一章首先介绍了两个基础的逻辑运算指令,它们为后续的大小写转换打下了基础。 and指令:按位进行逻辑与运算。 特点:通过该指令可以将操作对象的相应位设为0,其他位保持不变。 示例:and al, 11011111b 会将al的第5位置0,其他位不变。 or指令:按位 阅读全文
posted @ 2026-03-11 13:09 MachineGaming 阅读(2) 评论(0) 推荐(0)
摘要: 6.1 为什么需要多个段? 在第五章中,我们用循环处理了大量的数据。如果数据、栈和代码都混在同一个段(比如 code 段)里,会带来两个主要问题: 混乱:程序稍大,代码和数据的界限就模糊了,难以维护。 容量限制:一个段的最大长度是 64KB(因为 8086/8088 的偏移地址是 16 位的,范围为 阅读全文
posted @ 2026-03-11 11:17 MachineGaming 阅读(2) 评论(0) 推荐(0)