- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 【不求甚解】《C Primer Plus》第二章 C语言概述
简单的 C 程序示例#include <stdio.h>int main(void) // 一个简单的 C 程序{ int num; // 定义一个名为 num 的变量 num = 1; // 为 num 赋一个值 printf("I am a simple "); // 使用 printf() 函数 printf("computer.\n"); printf("My favorite number is %d because it
2022-05-04 21:37:10
160
原创 【不求甚解】《C Primer Plus》第一章 初始 C 语言
C 是一门功能强大的专业化编程语言,深受也许编程爱好者和专业程序员的喜爱。C 语言的起源1972 年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发 UNIX 操作系统时设计了 C 语言。选择 C 语言的理由优点设计特性C 融合了计算机科学理论和实践的控制特性。可以让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。因此,用 C 语言编写的程序更易懂、更可靠。高效性C 充分利用了当前计算机的优势,因此 C 语言相对更紧凑,而且
2022-05-03 21:24:22
300
原创 【不求甚解】《汇编语言》第 11 章:使用 BIOS 进行键盘输入和磁盘读写
文章目录前言int 9 终端历程对键盘输入的处理int 9 中断例程对键盘输入的处理方法使用 int 16h 中断例程读取键盘缓冲区int 16 中断例程对键盘输入的处理方法前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。BIOS 为键盘和磁盘这两种外设的 I/O 提供了最基本的中断例程。int 9 终端历程对键盘输入的处理BIOS 提供了 int 9中断例程。CPU 在 9 号中断发生后,执
2022-05-02 20:24:03
667
原创 【不求甚解】《汇编语言》第 11 章:直接定址表
文章目录前言描述了单元长度的标号前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。描述了单元长度的标号assume cs:codecode segment a: db 1, 2, 3, 4, 5, 6, 7, 8 b: dw 0 start: mov si, offset a mov bx, offset b mov cx, 8s: mov al, cs:[si] mov a
2022-05-01 21:27:05
255
原创 【不求甚解】《汇编语言》第 11 章:外中断
文章目录前言外中断接口芯片和端口外中断信息PC 机键盘的处理过程编写 int 9 中断例程前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。外中断CPU 在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接受它们的输入,向它们精心输出。也就是说,CPU 除了有运算能力外,还要有 I/O(Input/Output,输入/输出)能力。比如,我们按下键盘上的一个键,CPU 最
2022-04-30 20:09:24
175
原创 第 14 章 端口
文章目录前言端口的读写CMOS RAM 芯片shl 和 shr 指令CMOS RAM 中存储的时间信息【Program】前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。各种存储器都和 CPU 的地址线、数据线、控制线相连。CPU 在操控它们的时候,把它们都当做内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间。在 PC 机系统中,和 CPU 通过总
2022-04-29 19:55:42
205
原创 8086功能结构
1. 总线接口单元和执行单元总线接口单元BIU(Bus Interface Unit)。总线借口单元是由6字节的指令队列(即指令寄存器)、 指令指针IP(等同于程序计数器的功能)、 段寄存器(CS、DS、SS和ES)、 地址加法器和总线控制逻辑等构成。该单元管理着 8086 与系统总线的接口,负责处理器对存储器和外设进行访问。对外的8086处理器引脚由16位双向数据总线、 20位地址总线 若干控制总线组成。8086 所有对外操作必须通过 BIU 和这些总线进行。例如从主
2022-04-28 22:12:35
1277
原创 【不求甚解】《汇编语言》第 11 章:int 指令
文章目录前言int 指令编写供应用程序调用的中断例程前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。中断信息可以来自 CPU 的内部和外部,当 CPU 的内部由需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。int 指令int 指令的格式:int nn 为中断类型码,它的功能是引发中断过程。CPU 执行 int n 指令,相当于引发一个 n 号中断的中断过程,执行过程如
2022-04-27 21:25:56
374
原创 【不求甚解】《汇编语言》第 11 章:内中断
文章目录前言内中断的产生中断处理程序中断向量表中断过程中断处理程序和 iret 指令前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。任何一个通用的CPU,比如 8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU 外部发送过来的或内部产生的一种特殊信息,并且可以立即对所接受到的信息进行处理,这种特殊的信息,我们可以称为:中断信息。中断的意思是指,CPU 不再接着(刚执行
2022-04-26 21:38:07
206
原创 【不求甚解】《汇编语言》第 11 章:标志寄存器
文章目录前言ZF 标志PF 标志SF 标志__Line####################################CF 标志OF 标志abc 指令sbb 指令cmp 指令前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:213-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。CPU 内部的寄存器中,有一种特殊的寄存器,具有以下 3 种作用用来存储相关指令的某些执行结果用来为 CPU 执行的相关指令提供行为依据用来控制 CPU 的相关
2022-04-25 21:29:20
750
原创 【不求甚解】《汇编语言》第 7 章:CALL 和 RET 指令
文章目录前言ret 和 retf前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:190-205本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。call 和 ret 指令都是转移指令,它们都修改 IP,或同时修改 CS 和 IP。它们经常被共同用来实现子程序的设计。ret 和 retfret 指令用栈中的数据,修改 IP 的内容,从而实现近转移;retf 指令用栈中的数据,修改 CS 和 IP 的内容,从而实现远转移。CPU 执行 ret 指令时
2022-04-24 21:30:20
430
原创 【浅尝辄止】《汇编语言》寻址方式在结构化数据访问中的应用
文章目录前言寻址方式的综合应用关于 DEC 公司的一条记录(1982年)DEC 公司信息的变化(1988年)编程任务:修改内存中的过时数据分析要修改内容:确认修改方法编程修改汇编风格C 语言风格寻址方式在结构化数据访问中的应用前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:166-173本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。寻址方式的综合应用关于 DEC 公司的一条记录(1982年)公司名称DEC总裁姓名Ken Ol
2022-04-24 20:59:03
345
原创 【不求甚解】《汇编语言》第 7 章:转移指令的原理
文章目录前言操作符 offsetjmp 指令依据位移进行转移的 jmp 指令前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。转移指令:可以修改IP 或 同时修改 CS 和 IP 的指令。概括地讲,转移指令就是可以控制 CPU 执行内存中某处代码的指令。8086CPU 转移行为的类型:只修改 IP 时,称为段内转移,比如:jmp ax同时修改 CS 和 IP 时,称为段间转移,比如:jmp
2022-04-23 21:13:01
607
原创 【不求甚解】《汇编语言》第 8 章:数据处理的两个基本问题
文章目录前言前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。计算机进行数据处理和运算的两个基本问题处理的数据在什么地方?要处理的数据有多长?描述性符号:reg 表示寄存器sreg 表示段寄存器bx、si、di 和 bpmov ax, [bx]mov ax, [si]mov ax, [di]mov ax, [bx+si]mov ax, [bx+di]mov ax, [bx+
2022-04-22 21:35:04
378
原创 【不求甚解】《汇编语言》第 7 章:更灵活的定位内存地址的方法
文章目录前言and 和 or 指令以字符形式给出的数据大小写转换的问题[bx+idata]用 [bx+idata] 的方式进行数组的处理SI 和 DI使用栈暂存数据前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。and 和 or 指令and 指令:逻辑与指令,按位进行与运算mov al, 0000 0101Band al, 0000 0110B ; ax = 0000 0000B
2022-04-21 18:57:13
373
原创 【浅尝辄止】《汇编语言》编写、调试具有多个段的程序
文章目录前言代码示例问题设程序加载后,code 段地址为 X,data 段地址 和 stack 段地址分别为多少?若 "end start" 改为 "end"(即不指明程序入口),则哪个程序可正确执行分析以下代码编程前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:1-1本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。代码示例assume cs:code, ds:data, ss:stack; 初始化 data 段数据data segment
2022-04-20 13:26:48
801
原创 【不求甚解】《汇编语言》第 6 章:包含多个段的程序
文章目录前言在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:123-133本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。程序取得所需空间的方法有两种:在加载程序的时候为程序分配程序在执行的过程中向系统申请在代码段中使用数据在程序中,定义希望处理的数据,这些数据在编译、连接过程中会作为程序的一部分写到可执行文件中,当可执行文件中的程序被加载入内存时,这些数据也同时被加载入内存中。
2022-04-20 08:56:29
142
原创 【浅尝辄止】《汇编语言》[bx] 和 loop 的使用
文章目录前言前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:121-122本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。编程,向内存中 0:200 ~ 0:23F 依次传送数据 0 ~ 63(3FH)assume cs:codecode segment mov ax, 0020h mov ds, ax mov bx, 0 mov cx, 64s: mov [bx], bl inc bl lo
2022-04-19 21:39:19
90
原创 【不求甚解】《汇编语言》第 5 章:[BX]和 loop 指令
文章目录前言[BX]loop 循环指令安全空间前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:95-121本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。[BX]要完整地描述一个内存单元,需要两种信息:内存单元的地址(段地址默认在 ds 中)内存单元的长度(类型)(由具体指令中的其他操作对象(如寄存器)指出)和 [0] 一样,[bx] 也表示一个内存单元,它的偏移地址在 bx 中。; 段地址 SA 默认在 ds 中; bx 中存放的数据
2022-04-19 20:15:12
484
原创 【浅尝辄止】《汇编语言》第一个程序的编程、编译、连接和跟踪
文章目录前言编辑编译连接简化编译和连接过程运行汇编程序从写出到执行的过程跟踪前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:83-91本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。编辑assume cs:codesegcodeseg segment mov ax, 2000H mov ss, ax mov sp, 0 add sp, 10 pop ax pop bx push ax push ax pop ax pop b
2022-04-18 13:55:30
203
原创 【不求甚解】《汇编语言》第 4 章:第一个程序
文章目录前言一个源程序从写出到执行的过程源程序伪指令程序返回前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:76-82本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。一个源程序从写出到执行的过程编写汇编程序使用文本编辑器,用汇编语言编写汇编源程序。对源程序进行编译连接使用编译程序对源程序文件中的源程序进行编译,产生目标文件;用连接程序对目标文件进行连接,生成可执行文件。执行可执行文件中的程序]可执行文件包含程序、数据和相关描述信
2022-04-18 11:06:04
74
原创 【浅尝辄止】《汇编语言》入栈出栈操作
文章目录前言前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:71-75本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。Debug 中 T 命令执行修改段栈寄存器 SS 的指令时,下一条指令也紧接着被执行。mov ax, ffffmov ds, axmov ax, 2200mov ss, axmov sp, 0100mov ax, [0] ; ax = C0EAadd ax, [2] ; ax = C0FCmov bx,
2022-04-17 18:31:54
1210
原创 【不求甚解】《汇编语言》第 3 章:寄存器(内存访问)
文章目录前言一、DS 和 [address]二、mov、add、sub 指令三、栈SS:SP(指向栈顶元素)push(入栈)pop(出栈)push 和 pop 指令格式前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:48-67本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。一、DS 和 [address]DS 寄存器存放要访问数据的段地址。将内存单元中的内容送入一个寄存器中:mov 寄存器名, [内存单元地址]。需要使用其余寄存器作为中转来修改
2022-04-17 15:57:32
394
原创 【浅尝辄止】《汇编语言》Debug调试指令
文章目录前言R:查看、改变 CPU 寄存器的内容D:查看内存中的内容E:改写内存中的内容U:将内存中的机器指令翻译成汇编指令T:执行一条机器指令A:以汇编指令的格式在内存中写入一条机器指令前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:14-32本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。Debug 是实模式(8086 方式)程序的调试工具。命令功能R查看、改变 CPU 寄存器的内容D查看内存中的内容E改写内
2022-04-16 18:35:42
876
原创 【不求甚解】《汇编语言》第 2 章:寄存器
文章目录前言一、通用寄存器二、汇编指令举例三、物理地址四、段寄存器前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:14-32本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。8086CPU 的所有寄存器都是 16 位的,可以存放两个字节。8086CPU 有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。一、通用寄存器AX、BX、CX、DX 寄存器通常用来存放一般性数据,称为通用寄存器。AX、BX
2022-04-16 12:53:05
164
原创 【不求甚解】《汇编语言》第 1 章:基础知识
文章目录前言一、汇编语言的产生二、汇编语言的组成三、指令和数据四、存储单元前言参考书籍: 王爽。汇编语言。北京:清华大学出版社, 2013:3-4本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。一、汇编语言的产生汇编语言是机器指令便于记忆的书写格式。早期的程序设计均使用机器语言。用0、1编写程序代码,并打在纸带或卡片上,1打孔、0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。人话寄存器 BX 的内容送到 AX 中汇编语言mov ax
2022-04-15 15:25:07
145
DOS环境下学习汇编的工具
2022-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人