- 博客(1073)
- 资源 (17)
- 收藏
- 关注
原创 《汇编语言:基于X86处理器》第9章 字符串和数组(2)
如果学会有效地处理字符串和数组,就能够掌握代码优化中最常见的情况。研究表明,绝大多数程序用90%的运行时间执行其10%的代码。毫无疑问,这 10%通常发生在循环中,而循环正是处理字符串和数组所要求的结构。本章以编写高效代码为目的,闸释字符串和数组处理技术。本章首先介绍字符串基本指令,它们针对数据块的传送、比较、加载和保存进行过优化。然后是Irvine32和Irvine64链接库的几个字符串处理过程,它们的实现与标准C字符串库中的实现非常相似。
2025-07-22 23:55:37
700
原创 《汇编语言:基于X86处理器》第9章 字符串和数组(1)
如果学会有效地处理字符串和数组,就能够掌握代码优化中最常见的情况。研究表明,绝大多数程序用90%的运行时间执行其10%的代码。毫无疑问,这 10%通常发生在循环中,而循环正是处理字符串和数组所要求的结构。本章以编写高效代码为目的,闸释字符串和数组处理技术。本章首先介绍字符串基本指令,它们针对数据块的传送、比较、加载和保存进行过优化。然后是Irvine32和Irvine64链接库的几个字符串处理过程,它们的实现与标准C字符串库中的实现非常相似。
2025-07-21 23:57:20
722
原创 《汇编语言:基于X86处理器》第8章 高级过程(3)
本章将介绍子程序调用的底层结构,重点集中于运行时堆栈。本章的内容对 C和 C++程序员也是有价值的,因为在调试运行于操作系统或设备驱动程序层的底层子程序时,他们也经常必须检查运行时堆栈的内容。大多数现代编程语言在调用子程序之前都会把参数压人堆栈。反过来,子程序也常常把它们的局部变量压入堆栈。本章学习的详细内容与 C++和 Java 知识相关,将展示如何以数值或引用的形式来传递参数;如何定义和撤销局部变量;以及如何实现递归。在本章结束时,将解释 MASM使用的不同的内存模式和语言标识符。
2025-07-19 22:38:19
965
原创 《汇编语言:基于X86处理器》第8章 高级过程(2)
本章将介绍子程序调用的底层结构,重点集中于运行时堆栈。本章的内容对 C和 C++程序员也是有价值的,因为在调试运行于操作系统或设备驱动程序层的底层子程序时,他们也经常必须检查运行时堆栈的内容。大多数现代编程语言在调用子程序之前都会把参数压人堆栈。反过来,子程序也常常把它们的局部变量压入堆栈。本章学习的详细内容与 C++和 Java 知识相关,将展示如何以数值或引用的形式来传递参数;如何定义和撤销局部变量;以及如何实现递归。在本章结束时,将解释 MASM使用的不同的内存模式和语言标识符。
2025-07-17 23:31:51
813
原创 《汇编语言:基于X86处理器》第8章 高级过程(1)
本章将介绍子程序调用的底层结构,重点集中于运行时堆栈。本章的内容对 C和 C++程序员也是有价值的,因为在调试运行于操作系统或设备驱动程序层的底层子程序时,他们也经常必须检查运行时堆栈的内容。大多数现代编程语言在调用子程序之前都会把参数压人堆栈。反过来,子程序也常常把它们的局部变量压入堆栈。本章学习的详细内容与 C++和 Java 知识相关,将展示如何以数值或引用的形式来传递参数;如何定义和撤销局部变量;以及如何实现递归。在本章结束时,将解释 MASM使用的不同的内存模式和语言标识符。
2025-07-15 23:11:30
816
原创 《汇编语言:基于X86处理器》第7章 整数运算(3)
本章将介绍汇编语言最大的优势之一:基本的二进制移位和循环移位技术。实际上,位操作是计算机图形学、数据加密和硬件控制的固有部分。实现位操作的指令是功能强大的工具,但是高级语言只能实现其中的一部分,并且由于高级语言要求与平台无关,所以这些指令在一定程度上被弱化了。本章将展示一些对移位操作的应用,包括乘除法的优化。并非所有的高级编程语言都支持任意长度整数的运算。但是汇编语言指令使得它能够加减几乎任何长度的整数。本章还将介绍执行压缩十进制整数和整数字符串运算的专用指令。
2025-07-12 23:18:15
587
原创 《汇编语言:基于X86处理器》第7章 整数运算(2)
本章将介绍汇编语言最大的优势之一:基本的二进制移位和循环移位技术。实际上,位操作是计算机图形学、数据加密和硬件控制的固有部分。实现位操作的指令是功能强大的工具,但是高级语言只能实现其中的一部分,并且由于高级语言要求与平台无关,所以这些指令在一定程度上被弱化了。本章将展示一些对移位操作的应用,包括乘除法的优化。并非所有的高级编程语言都支持任意长度整数的运算。但是汇编语言指令使得它能够加减几乎任何长度的整数。本章还将介绍执行压缩十进制整数和整数字符串运算的专用指令。
2025-07-11 23:12:49
717
原创 《汇编语言:基于X86处理器》第7章 整数运算(1)
本章将介绍汇编语言最大的优势之一:基本的二进制移位和循环移位技术。实际上,位操作是计算机图形学、数据加密和硬件控制的固有部分。实现位操作的指令是功能强大的工具,但是高级语言只能实现其中的一部分,并且由于高级语言要求与平台无关,所以这些指令在一定程度上被弱化了。本章将展示一些对移位操作的应用,包括乘除法的优化。并非所有的高级编程语言都支持任意长度整数的运算。但是汇编语言指令使得它能够加减几乎任何长度的整数。本章还将介绍执行压缩十进制整数和整数字符串运算的专用指令。
2025-07-10 22:54:43
829
原创 《汇编语言:基于X86处理器》第6章 条件处理(3)
本章向程序员的汇编语言工具箱中引入一个重要的内容,使得编写出来的程序具备作决策的功能。几乎所有的程序都需要这种能力。首先,介绍布尔操作,由于能影响CPU状态标志,它们是所有条件指令的核心。然后,说明怎样使用演绎CPU状态标志的条件跳转和循环指令。接着演示如何用本章介绍的工具来实现理论计算机科学中最根本的结构之一:有限状态机。本章最后展示的是MASM内置的32位编程的逻辑结构。
2025-07-03 22:20:13
839
原创 《汇编语言:基于X86处理器》第6章 条件处理(2)
本章向程序员的汇编语言工具箱中引入一个重要的内容,使得编写出来的程序具备作决策的功能。几乎所有的程序都需要这种能力。首先,介绍布尔操作,由于能影响CPU状态标志,它们是所有条件指令的核心。然后,说明怎样使用演绎CPU状态标志的条件跳转和循环指令。接着演示如何用本章介绍的工具来实现理论计算机科学中最根本的结构之一:有限状态机。本章最后展示的是MASM内置的32位编程的逻辑结构。
2025-07-02 23:41:11
1064
原创 《汇编语言:基于X86处理器》第6章 条件处理(1)
本章向程序员的汇编语言工具箱中引入一个重要的内容,使得编写出来的程序具备作决策的功能。几乎所有的程序都需要这种能力。首先,介绍布尔操作,由于能影响CPU状态标志,它们是所有条件指令的核心。然后,说明怎样使用演绎CPU状态标志的条件跳转和循环指令。接着演示如何用本章介绍的工具来实现理论计算机科学中最根本的结构之一:有限状态机。本章最后展示的是MASM内置的32位编程的逻辑结构。
2025-07-01 23:47:37
745
原创 《汇编语言:基于X86处理器》第5章 过程(2)
本章介绍过程,也称为子程序或函数。任何具有一定规模的程序都需要被划分为几个部分,其中某些部分要被使用多次。读者会发现寄存器可以传递参数,也将了解为了追踪过程的调用位置,CPU 使用的运行时堆栈。最后,本章会介绍本书提供的两个代码库,分别称为 Irvine 32 和 Irvine 64,其中包含了有用的工具来简化输入输出。
2025-06-28 22:51:20
895
原创 《汇编语言:基于X86处理器》第5章 过程(1)
本章介绍过程,也称为子程序或函数。任何具有一定规模的程序都需要被划分为几个部分,其中某些部分要被使用多次。读者会发现寄存器可以传递参数,也将了解为了追踪过程的调用位置,CPU 使用的运行时堆栈。最后,本章会介绍本书提供的两个代码库,分别称为 Irvine 32 和 Irvine 64,其中包含了有用的工具来简化输入输出。
2025-06-26 23:16:17
990
原创 《汇编语言:基于X86处理器》第4章 数据传送、寻址和算术运算(2)
本章介绍了数据传送和算术运算的若干必要指令,用大量的篇幅说明了基本寻址模式,如直接寻址、立即寻址和可以用于处理数组的间接寻址。同时,还展示了怎样创建循环和怎样使用一些基本运算符,如 OFFSET,PTR 和LENGTHOF。阅读本章后,将会了解除条件语句之外的汇编语言的基本工作知识。
2025-06-24 22:06:04
990
原创 《汇编语言:基于X86处理器》第4章 数据传送、寻址和算术运算(1)
本章介绍了数据传送和算术运算的若干必要指令,用大量的篇幅说明了基本寻址模式,如直接寻址、立即寻址和可以用于处理数组的间接寻址。同时,还展示了怎样创建循环和怎样使用一些基本运算符,如 OFFSET,PTR 和LENGTHOF。阅读本章后,将会了解除条件语句之外的汇编语言的基本工作知识。
2025-06-23 22:17:35
799
原创 《汇编语言:基于X86处理器》第3章 汇编语言基础
本章侧重于Microsoft MASM汇编程序的基本组成部分。读者将会了解到如何定义常数和变量,数字和字符常量的标准格式,以及怎样汇编并运行你的第一个程序。本章特别强调了Visual Studio 调试器,它是理解程序如何工作的优秀工具。本章最重要的是,一次前进一步,在进入到下一步之前,要掌握每一个细节。夯实基础对后续章节来说是非常有帮助的。
2025-06-20 22:15:02
704
原创 《汇编语言:基于X86处理器》第2章 x86处理器架构
本章重点是与 x86 汇编语言相关的底层硬件。有说法认为,汇编语言是直接与机器交流的理想软件工具。如果是真的,那么汇编程序员就必须非常熟悉处理器的内部结构与功能。本章将讨论指令执行时处理器内部发生的一些基本操作,以及操作系统如何加载和执行程序,并通过样本主板布局来了解x86系统的硬件环境,最后还讨论了在应用程序与操作系统之间,层次化输入输出是如何工作的。本章所有主题为开始编写汇编语言程序提供了硬件基础。
2025-06-18 22:38:48
687
原创 《汇编语言:基于X86处理器》第1章 基本概念
本章将建立汇编语言编程的一些核心概念。比如,汇编语言是如何适应各种语言和应用程序的。本章还将介绍虚拟机概念,它在理解软件与硬件层之间的关系时非常重要。本章还用大量的篇幅说明二进制和十六进制的数制系统,展示如何执行转换和基本的算术运算。本章的最后将介绍基础逻辑操作(AND、OR 和NOT),后续章节将证明这些操作是很重要的。
2025-06-16 22:03:42
1059
原创 《汇编语言》第17章——课程设计2
本篇是《汇编语言》的课程设计2阅读下面的材料:开机后,CPU自动进入到FFFF:0单元处执行,此处有一条跳转指令。CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。初始化程序将建立 BIOS 所支持的中断向量,即将 BIOS 提供的中断例程的入口地址登记在中断向量表中。硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。如果设为从软盘启动操作系统,则int 19h将主要完成以下工作。
2025-06-11 22:58:54
736
原创 《汇编语言》第17章 使用BIOS进行键盘输入和磁盘读写——实验17 编写包含多个功能子程序的中断例程
本篇介绍第17章 使用BIOS进行键盘输入和磁盘读写——实验17 编写包含多个功能子程序的中断例程安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。参数说明:(1)用ah寄存器传递功能号:0表示读,1表示写;(2)用dx寄存器传递要读写的扇区的逻辑扇区号;(3)用es:bx指向存储读出数据或写入数据的内存区。提示,用逻辑扇区号计算出面号、磁道号、扇区号后,调用 int 13h 中断例程进行实际的读写。
2025-06-10 14:29:14
365
原创 《汇编语言》第17章 使用BIOS进行键盘输入和磁盘读写
大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入。程序和数据通常需要长期存储,磁盘是最常用的存储设备。BIOS 为这两种外设的I/O提供了最基本的中断例程,在本章中,我们对它们的应用和相关的问题进行讨论。
2025-06-09 15:01:18
726
原创 《汇编语言》第16章 直接定址表——实验16 编写包含多个功能子程序的中断例程
本篇是第16章 直接定址表——实验16 编写包含多个功能子程序的中断例程安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。(1)清屏;(2)设置前景色;(3)设置背景色;(4) 向上滚动一行。入口参数说明如下。(1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;(2)对于1、2号功能,用al传送颜色值,(al)={0,1,2,3,4,5,6,7}。
2025-06-08 14:27:03
178
原创 《汇编语言》第15章 外中断——实验15 安装新的 int 9中断例程
本篇介绍 第15章 外中断——实验15 安装新的 int 9中断例程,功能:在DOS下,按下"A"键后,除非不再松开,如果松开,就显示满屏幕的"A",其他的键照常处理。提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80h。指令系统总结
2025-06-06 14:26:37
326
原创 《汇编语言》第15章 外中断
以前我们讨论的都是CPU对指令的执行。我们知道,CPU在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。也就是说,CPU 除了有运算能力外,还要有 I/O(Input/Output,输入/输出)能力。比如,我们按下键盘上的一个键,CPU 最终要能够处理这个键。在使用文本编辑器时,按下a 键后,我们可以看到屏幕上出现"a",是CPU将从键盘上输入的键所对应的字符送到显示器上的。
2025-06-05 17:28:35
1030
原创 《汇编语言》第14章 端口——实验14 访问CMOS RAM
本篇介绍第14章的实验14 访问CMOS RAM编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其的单元写入内容,否则将引起一些系统错误。
2025-06-04 10:35:24
189
原创 《汇编语言》第14章 端口
我们前面讲过,各种存储器都和CPU的地址线、数据线、控制线相连。CPU在操控它们的时候,把它们都当作内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间(可参见1.15节)。在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3种芯片。(1)各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作;(2)主板上的接口芯片,CPU通过它们对部分外设进行访问;(3)其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理。
2025-06-03 14:32:03
879
computer-vision计算机视图算法opencv相关
2024-03-03
QTreeView+自定义Model实现示例
2022-07-01
VC++ 6.0数据库系统开发实例导航源码
2011-10-23
C++ Qt设计模式第2版(中英文版)+源码
2015-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人