随笔分类 -  汇编语言

1
摘要:本博客内容仅供学习交流。本人不对任何第三方基于本博客内容抓取的衍生工具(包括但不限于Skill、插件、智能体等)的输出结果作任何明示或暗示的担保。使用者需自行判断其准确性与合规性,因使用此类工具所引发的决策失误、数据泄露及其他直接或间接损失,均由使用者自行承担,与本人无关。 目录8086 实模式基础 阅读全文
posted @ 2026-08-28 02:47 乌漆WhiteMoon 阅读(59) 评论(0) 推荐(0)
摘要:目录键盘输入的处理int 9 例程处理键盘输入int 16h 例程读取键盘缓冲区字符串的输入int 13h 例程对磁盘读写实验 17参考资料 键盘输入的处理 键盘是最基础的人机交互设备,其输入过程涉及硬件中断、BIOS 中断例程、系统数据区的协同。 int 9 例程处理键盘输入 当用户按下或松开一个 阅读全文
posted @ 2026-08-27 22:31 乌漆WhiteMoon 阅读(13) 评论(0) 推荐(0)
摘要:目录数据标号标号的跨段使用直接定址表程序入口地址的定址表实验 16参考资料 数据标号 之前的程序中使用的标号,如 s:、start: 等基本上只承担地址标识符的功能,用于告诉编译器偏移地址。至于这个地址对应的内存单元是字节、字还是双字,编译器并不知情,必须由程序员显式使用 byte ptr、word 阅读全文
posted @ 2026-08-25 18:12 乌漆WhiteMoon 阅读(16) 评论(0) 推荐(0)
摘要:目录外中断接口芯片外中断的类型开/关中断指令PC 机键盘的处理过程编写 int 9 中断例程字母序列显示中断接管与调用安装新的例程实验 15参考资料 外中断 接口芯片 CPU 并不直接从键盘、鼠标读取数据,也不直接向显示器写入像素。在 CPU 和外设之间以接口芯片作为中间层,如键盘控制器 8042、 阅读全文
posted @ 2026-08-24 20:31 乌漆WhiteMoon 阅读(30) 评论(0) 推荐(0)
摘要:目录逻辑左移和右移端口的读写CMOS RAM 芯片CMOS RAM 的端口芯片中的时间信息实验 14参考资料 逻辑左移和右移 shl 和 shr 分别对应逻辑左移和逻辑右移,移出的最后一位会存入 CF 标志位,它们的运行效果如下表所示: 指令 移动方向 移出位去向 空出位补 shl 向左 写入 CF 阅读全文
posted @ 2026-08-23 16:51 乌漆WhiteMoon 阅读(21) 评论(0) 推荐(0)
摘要:目录int 指令供程序调用的中断例程计算平方转换字符串为大写显示字符串int 指令对栈的影响模拟 loop 指令模拟 jmp near ptr 指令BIOS 与 DOS 中断例程系统中断例程的加载BIOS 中断例程应用DOS 中断例程应用参考资料 int 指令 在 8086 CPU 上程序员可以用i 阅读全文
posted @ 2026-08-21 00:05 乌漆WhiteMoon 阅读(18) 评论(0) 推荐(0)
摘要:目录内中断内中断的产生中断处理程序中断向量表中断过程中断处理程序编程处理 0 号中断中断程序的编写逻辑安装程序do0 的编写设置中断向量单步中断TF 标志位SS 寄存器的特殊情况参考资料 内中断 内中断的产生 CPU 具备在执行完当前指令后,响应内外特殊事件并暂停现行程序、转去处理该事件的能力。触发 阅读全文
posted @ 2026-08-20 01:01 乌漆WhiteMoon 阅读(23) 评论(0) 推荐(0)
摘要:目录cmp 指令cmp 指令的功能无符号数的比较有符号数的比较条件转移指令串传送指令DF 标志单步搬运rep 指令实验11参考资料 cmp 指令 cmp 指令的功能 cmp 指令是比较指令,其功能相当于不写回结果 sub 指令。它执行的是 操作对象1 − 操作对象2,然后根据这个结果去设置 flag 阅读全文
posted @ 2026-08-18 14:46 乌漆WhiteMoon 阅读(44) 评论(0) 推荐(0)
摘要:目录flag​ 寄存器标志位零标志位 ZF奇偶标志位 PF符号标志位 SF进位/借位标志 CF溢出标志 OFx86 中的标志位进位/借位的加/减法adc 指令sbb 指令flag 寄存器的访问参考资料 flag​ 寄存器 在 8086CPU 中还有一类不同于ax、cs​ 这类整体存放数据的 flag 阅读全文
posted @ 2026-08-17 00:35 乌漆WhiteMoon 阅读(38) 评论(0) 推荐(0)
摘要:目录显示缓冲区属性字节格式实验 9显示字符串子程序十进制数值显示除法溢出问题课程设计 1参考资料 显示缓冲区 在 8086 的实模式内存中,B8000H~BFFFFH 这 32KB 的空间被映射为 80×25 彩色字符模式的显示缓冲区。向这块内存写入数据时不需要调用 BIOS 或 DOS 中断,数据 阅读全文
posted @ 2026-08-16 21:26 乌漆WhiteMoon 阅读(22) 评论(0) 推荐(0)
摘要:目录ret 与 retf 指令call 指令子程序的实现mul 指令汇编的模块化程序设计参数和结果传递批量数据的传递寄存器冲突参考资料 call 和 ret 是带返回的转移指令,和其他转移指令的区别在于:它们在跳转之前会先把返回地址压入栈中。 ret 与 retf 指令 ret 和 retf 都是利 阅读全文
posted @ 2026-08-14 01:20 乌漆WhiteMoon 阅读(22) 评论(0) 推荐(0)
摘要:目录转移指令的概念offset 操作符jmp 指令短转移和近转移远转移转移地址的读取jcxz 指令loop 指令根据位移进行转移的意义实验 8参考资料 转移指令的概念 能够修改 IP 或同时修改 CS 和 IP 的指令被称为转移指令,它们的作用是控制 CPU 去执行内存中另一处代码。在 8086 中 阅读全文
posted @ 2026-08-13 00:31 乌漆WhiteMoon 阅读(50) 评论(0) 推荐(0)
摘要:目录位操作指令字符形式的数据带偏移量的内存寻址SI 和 DI 寄存器二重寻址三重寻址参考资料 位操作指令 and 和 or 指令是进行位操作的基础指令。 指令 功能 样例 and 指令 按位逻辑与,用途是将特定位设为 0 例如 and al, 11011111B,通过让第 5 位(从 0 开始数)与 阅读全文
posted @ 2026-08-12 00:03 乌漆WhiteMoon 阅读(12) 评论(0) 推荐(0)
摘要:目录寻址寄存器的限制用于内存寻址的寄存器使用限制的原因寻址方式总结数据的长度实现结构化数据寻址div 指令伪指令 dddup 操作符实验 7参考资料 无论指令如何编写,归根结底都在解决数据在哪以及数据多大这两个问题。 寻址寄存器的限制 用于内存寻址的寄存器 8086CPU 对内存寻址可用的寄存器有严 阅读全文
posted @ 2026-08-11 02:04 乌漆WhiteMoon 阅读(24) 评论(0) 推荐(0)
摘要:目录在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段实验 5多段程序分析段大小与空间占用段定义顺序的影响字节型数据相加字型数据逆序存储参考资料 之前为了存放数据,我们需要借用代码段空间或一段安全区域(0:200),这是不规范且不可扩展的。因此需要令程序合法地获取任意大小的内存空间,以及 阅读全文
posted @ 2026-08-10 00:31 乌漆WhiteMoon 阅读(17) 评论(0) 推荐(0)
摘要:目录[BX]与内存单元的描述Loop指令Debug 跟踪用 loop 指令段前缀一段安全的空间实验4参考资料 之前的指令只是在操作寄存器和固定内存单元,通过引入内存间接寻址和循环控制可以令程序实现动态访问内存和批量处理数据。 [BX]与内存单元的描述 之前使用的类似 mov ax,[0] 的指令中的 阅读全文
posted @ 2026-08-09 00:11 乌漆WhiteMoon 阅读(31) 评论(0) 推荐(0)
摘要:目录汇编程序的生命周期指令、伪指令与结构伪指令程序返回标准程序框架用 vscode 编辑源程序编译和连接程序执行过程的跟踪实验 3程序编写Debug 分析查看 PSP 内容参考资料 之前的指令是在 Debug 中输入并执行的,接下来将编写完整的、可被操作系统加载的汇编源程序。 汇编程序的生命周期 汇 阅读全文
posted @ 2026-08-08 00:02 乌漆WhiteMoon 阅读(48) 评论(0) 推荐(0)
摘要:目录字在内存中的存储DS 与 [address]段寄存器数据段栈机制栈的 CPU 的实现push 和 pop 指令栈段实验二Debug 的机制修改 SS 指令的连带执行栈与内存的综合操作2000:0 内存变化参考资料 字在内存中的存储 8086 是 16 位 CPU,其通用寄存器多为 16 位,因此 阅读全文
posted @ 2026-08-07 17:59 乌漆WhiteMoon 阅读(37) 评论(0) 推荐(0)
摘要:目录搭建 DOSBox & MASM 环境Debug 工具使用R 命令D 命令E 命令U 命令T 命令A 命令实验 1逐条执行指令计算 2 的 8 次方查看 ROM 的日期向 B8100H 单元填写数据参考资料 搭建 DOSBox & MASM 环境 在使用 Debug 之前,需要先搭建一个能运行 阅读全文
posted @ 2026-08-06 13:58 乌漆WhiteMoon 阅读(79) 评论(0) 推荐(0)
摘要:目录机器语言和汇编语言机器语言汇编语言存储器主板与外设控制存储器与总线存储器类型内存地址空间寄存器通用寄存器MOV 与 ADD 指令物理地址与分段机制内存的分段管理CS 和 IP 寄存器jmp 指令参考资料 汇编语言是直接面向硬件的编程语言,其所有语法和编程都建立在计算机硬件结构之上,因此需要先理解 阅读全文
posted @ 2026-08-05 00:02 乌漆WhiteMoon 阅读(58) 评论(0) 推荐(0)

1