CSDN论坛 > 其他开发语言 > 汇编语言

汇编小白求帮忙 中断程序设计 [问题点数:200分]

Bbs1
本版专家分:0
结帖率 0%
CSDN今日推荐
匿名用户不能发表回复!
其他相关推荐
汇编各种中断
BIOS中断:1、显示服务(Video Service——INT 10H)00H —设置显示器模式 01H —设置光标形状 02H —设置光标位置 03H —读取光标信息 04H —读取光笔位置 05H —设置显示页 06H、07H —初始化或滚屏 08H —读光标处的字符及其属性 09H —在光标处按指定属性显示字符 0AH —在当前光标处显示字符 0BH —设置调色板、背景色
gprs驱动程序设计实例
一、核心数据结构串口驱动有3个核心数据结构,它们都定义在1、uart_driveruart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。   struct uart_driver {     struct module     *owner;           /* 拥有该uart
汇编 DOS的中断调用 INT 21H
DOS系统功能调用这个汇编指令是用于提供DOS系统功能调用。它是由DOS提供的一组实现特殊功能的子程序供程序员在编写自己的程序时调用,以减轻编程的工作量。 分两种,DOS系统功能调用和BIOS中断调用。 链接里都是一些常用的内容,大家可以自己去百度,一定比我这里给出的全面很多,有那种DOS系统功能调用表。调用步骤大致 (1)系统功能号送到寄存器AH中; (2)入口参数送到指定的寄存器中; (3)
【汇编】自定义9号中断(键盘输入处理中断)
在屏幕上交替显示a~z,按ESC字体变绿色   [plain] view plaincopy assume cs:code,ds:data    data segment      dw 0,0;存放原9号中断的偏移和段地址  data ends    code segment  ;;;;;;;;;;;;;;;;;;;;;;  ;主程序  ;;;;;;;;;;;;;;;;
汇编计算阶乘(MIPS)
初学汇编,不规范的地方还望指出
汇编语言----中断指令
中断是输入/输出程序中常用的控制方式,是指计算机暂停当前正在执行的程序而转去执行处理某事件的中断服务程序.当中断服务程序执行完毕,再恢复执行被暂时停止的程序 (1)中断指令   格式 : INT n   功能 : 产生一个中断类型号为n的软中断   指令完成的操作   a.标志寄存器入栈   b.断电地址入栈 : cs先入栈,然后ip入栈   c.从中断向量表中获取中断服务程序入口地
汇编语言中的外中断——键盘事件
汇编语言中的外中断和内中断差不多 1、取中断类型码n 2、标致寄存器入栈,IF=0,TF=0 2、CS、IP入栈 3、(IP)=(n*4),(CS)=(n*4+2) 但是外中断和内中断的中断类型码的来源不同,所以第一步肯定是不一样的,其他相同 下面来讲一下键盘事件下的处理方式 只要有键盘事件发生,就会触发int 9,这个int 9是硬件扫描过程,其实就是CPU对按键的IO口进行扫
汇编中断知识之INT 1CH
最近在编写汇编程序遇到一个使用INT 1CH的程序,INT 1CH是实现定时或周期性的工作,难道INT 1CH就像INT 21H一样直接调用它里面的功能号吗?下面就通过一个程序简单的看看传说中的INT 1CH的. 这个程序是实现屏幕背景颜色1秒钟变换一次的实验. 1.INT 1CH中断 INT 1CH其实是调用INT 21H中的25号功能:置中断向量AL=中断号,DS:DX=入口,同时I
汇编------中断
中断 汇编
Win32汇编语言程序设计(第2版)完整高清晰PDF版(共四部分)第一部分
Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://win32asm.yeah.net的站长。本书是作者多年来编程工作的总结,适合于欲通过Win32汇编语言编写Windows程序的读者。 第1篇 基础篇 第1章 背景知识 2 1.1 Win32的软硬件平台 2 1.1.1 80x86系列处理器简史 2 1.1.2 Windows的历史 4 1.1.3 Win32平台的背后——Wintel联盟 6 1.2 Windows的特色 6 1.3 必须了解的东西 7 1.3.1 80x86处理器的工作模式 7 1.3.2 Windows的内存管理 9 1.3.3 Windows的特权保护 17 第2章 准备编程环境 21 2.1 Win32可执行文件的开发过程 21 2.2 编译器和链接器 23 2.2.1 MASM系列 23 2.2.2 TASM系列 26 2.2.3 其他编译器 27 2.2.4 MASM,TASM还是NASM 28 2.2.5 我们的选择——MASM32软件包 29 2.3 创建资源 31 2.3.1 资源编译器的使用 31 2.3.2 所见即所得的资源编辑器 31 2.4 make工具的用法 33 2.4.1 make工具是什么 33 2.4.2 nmake的用法 34 2.4.3 描述文件的语法 35 2.5 获取资料 39 2.5.1 Windows资料的来源 39 2.5.2 Intel处理器资料 41 2.6 构建编程环境 41 2.6.1 IDE还是命令行 41 2.6.2 本书推荐的工作环境 42 2.6.3 尝试编译第一个程序 43 第3章 使用MASM 45 3.1 Win32汇编源程序的结构 45 3.1.1 模式定义 47 3.1.2 段的定义 49 3.1.3 程序结束和程序入口 52 3.1.4 注释和换行 52 3.2 调用API 53 3.2.1 API是什么 53 3.2.2 调用API 54 3.2.3 API参数中的等值定义 59 3.3 标号、变量和数据结构 61 3.3.1 标号 61 3.3.2 全局变量 63 3.3.3 局部变量 64 3.3.4 数据结构 67 3.3.5 变量的使用 69 3.4 使用子程序 73 3.4.1 子程序的定义 74 3.4.2 参数传递和堆栈平衡 75 3.5 高级语法 78 3.5.1 条件测试语句 78 3.5.2 分支语句 80 3.5.3 循环语句 82 3.6 代码风格 84 3.6.1 变量和函数的命名 84 3.6.2 代码的书写格式 86 3.6.3 代码的组织 87 第2篇 初级篇 第4章 第一个窗口程序 90 4.1 开始了解窗口 90 4.1.1 窗口是什么 90 4.1.2 窗口界面 91 4.1.3 窗口程序是怎么工作的 92 4.2 分析窗口程序 99 4.2.1 模块和句柄 99 4.2.2 创建窗口 101 4.2.3 消息循环 107 4.2.4 窗口过程 109 4.3 窗口间的通信 114 4.3.1 窗口间的消息互发 114 4.3.2 在窗口间传递数据 117 4.3.3 SendMessage和PostMessage函数的区别 118 第5章 使用资源 119 5.1 菜单和加速键 119 5.1.1 菜单和加速键的组成 119 5.1.2 菜单和加速键的资源定义 120 5.1.3 使用菜单和加速键 125 5.2 图标和光标 138 5.2.1 图标和光标的资源定义 138 5.2.2 使用图标和光标 139 5.3 位图 143 5.3.1 位图简介 143 5.3.2 在资源中定义位图 144 5.4 对话框 144 5.4.1 对话框简介 144 5.4.2 对话框的资源定义 146 5.4.3 使用对话框 148 5.4.4 在对话框中使用子窗口控件 151 5.5 字符串资源 173 5.6 版本信息资源 174 5.6.1 版本信息资源的定义 175 5.6.2 在程序中检测版本信息 177 5.7 二进制资源和自定义资源 178 5.7.1 使用二进制资源 178 5.7.2 使用自定义资源 179 第6章 定时器和Windows时间 181 6.1 定时器 181 6.1.1 定时器简介 181 6.1.2 定时器的使用方法 182 6.2 Windows时间 186 6.2.1 Windows时间的获取和设置 186 6.2.2 计算时间间隔 187 第7章 图形操作 189 7.1 GDI原理 189 7.1.1 GDI程序的结构 190 7.1.2 设备环境 193 7.1.3 色彩和坐标 199 7.2 绘制图形 201 7.2.1 画笔和画刷 209 7.2.2 绘制像素点 212 7.2.3 绘制图形 212 7.2.4 绘图模式 217 7.3 创建和使用位图 218 7.3.1 一个使用位图的时钟例子 218 7.3.2 创建和使用位图 229 7.3.3 使用设备无关位图 229 7.4 块传送操作 232 7.4.1 块传送方式 232 7.4.2 块传送函数 233 7.5 区域和路径 237 7.5.1 使用区域 237 7.5.2 使用路径 239 第3篇 界面篇 第8章 通用对话框 242 8.1 通用对话框简介 242 8.2 使用通用对话框 249 8.2.1 “打开”文件和“保存”文件对话框 249 8.2.2 字体选择对话框 251 8.2.3 颜色选择对话框 253 8.2.4 “查找”和“替换”文本对话框 254 8.2.5 “页面设置”对话框 257 8.2.6 “浏览目录”对话框 259 第9章 通用控件 260 9.1 通用控件简介 260 9.1.1 通用控件的分类 260 9.1.2 使用通用控件 262 9.2 使用状态栏 265 9.2.1 创建状态栏 271 9.2.2 状态栏的控制消息 272 9.2.3 在状态栏上显示菜单提示信息 274 9.3 使用工具栏 275 9.3.1 创建工具栏 283 9.3.2 工具栏的控制消息 286 9.3.3 工具栏的通知消息 288 9.4 使用Richedit控件 292 9.4.1 创建Richedit控件 304 9.4.2 Richedit控件的控制消息 306 9.4.3 Richedit控件的通知消息 315 9.5 窗口的子类化 316 9.5.1 什么是窗口的子类化 316 9.5.2 窗口子类化的实现 317 9.6 控件的超类化 323 9.6.1 什么是控件的超类化 323 9.6.2 控件超类化的实现 324 第4篇 系统篇 第10章 内存管理和文件操作 330 10.1 内存管理 330 10.1.1 内存管理基础 330 10.1.2 内存的当前状态 331 10.1.3 标准内存管理函数 333 10.1.4 堆管理函数 339 10.1.5 虚拟内存管理函数 343 10.1.6 其他内存管理函数 347 10.2 文件操作 349 10.2.1 Windows的文件I/O 349 10.2.2 创建和读写文件 350 10.2.3 查找文件 360 10.2.4 文件属性 368 10.2.5 其他文件操作 369 10.3 驱动器和目录 371 10.3.1 逻辑驱动器操作 372 10.3.2 目录操作 374 10.4 内存映射文件 376 10.4.1 内存映射文件简介 376 10.4.2 使用内存映射文件 379 第11章 动态链接库和钩子 387 11.1 动态链接库 387 11.1.1 动态链接库的概念 387 11.1.2 编写动态链接库 388 11.1.3 使用动态链接库 394 11.1.4 动态链接库中的数据共享 403 11.1.5 在VC++中使用动态链接库 404 11.2 Windows钩子 407 11.2.1 什么是Windows钩子 407 11.2.2 远程钩子的安装和使用 409 11.2.3 日志记录钩子 417 第12章 多线程 421 12.1 进程和线程 421 12.2 多线程编程 422 12.2.1 一个单线程的“问题程序” 422 12.2.2 多线程的解决方法 426 12.2.3 与线程有关的函数 430 12.3 使用事件对象控制线程 434 12.3.1 事件 435 12.3.2 等待事件 436 12.3.3 进一步改进计数程序 437 12.4 线程间的同步 440 12.4.1 产生同步问题的原因 440 12.4.2 各种用于线程间同步的对象 445 第13章 进程控制 452 13.1 环境变量和命令行参数 452 13.1.1 环境变量 452 13.1.2 命令行参数 455 13.2 执行可执行文件 461 13.2.1 方法一:Shell调用 461 13.2.2 方法二:创建进程 462 13.3 进程调试 471 13.3.1 获取运行中的进程句柄 471 13.3.2 读写进程的地址空间 478 13.3.3 调试API的使用 482 13.4 进程的隐藏 491 13.4.1 在Windows 9x中隐藏进程 491 13.4.2 Windows NT中的远程线程 493 第14章 异常处理 505 14.1 异常处理的用途 505 14.2 使用筛选器处理异常 506 14.2.1 注册回调函数 506 14.2.2 异常处理回调函数 508 14.3 使用SEH处理异常 511 14.3.1 注册回调函数 513 14.3.2 异常处理回调函数 515 14.3.3 SEH链和异常的传递 518 14.3.4 展开操作(Unwinding) 519 第5篇 应用篇 第15章 注册表和INI文件 525 15.1 注册表和INI文件简介 525 15.2 INI文件的操作 526 15.2.1 INI文件的结构 526 15.2.2 管理键值 527 15.2.3 管理小节 535 15.2.4 使用不同的INI文件 536 15.3 对注册表的操作 537 15.3.1 注册表的结构 537 15.3.2 管理子键 539 15.3.3 管理键值 550 15.3.4 子键和键值的枚举 551 15.3.5 注册表应用举例 554 第16章 WinSock接口和网络编程 558 16.1 Windows Socket接口简介 559 16.2 Windows Socket接口的使用 562 16.2.1 IP地址的转换 562 16.2.2 套接字 566 16.2.3 网络应用程序的一般工作流程 568 16.2.4 监听、发起连接和接收连接 571 16.2.5 数据的收发 574 16.2.6 一个最简单的TCP服务端程序 577 16.3 TCP应用程序的设计 583 16.3.1 通信协议和工作线程的设计 583 16.3.2 TCP聊天室例子——服务器端 593 16.3.3 TCP聊天室例子——客户端 600 16.3.4 以非阻塞方式工作的TCP聊天室客户端 607 16.3.5 其他常用函数 618 第17章 PE文件 622 17.1 PE文件的结构 622 17.1.1 概论 622 17.1.2 DOS文件头和DOS块 623 17.1.3 PE文件头(NT文件头) 625 17.1.4 节表和节 630 17.2 导入表 644 17.2.1 导入表简介 645 17.2.2 导入表的结构 647 17.2.3 查看PE文件导入表举例 649 17.3 导出表 652 17.3.1 导出表的结构 652 17.3.2 查看PE文件导出表举例 655 17.4 资源 658 17.4.1 资源简介 658 17.4.2 资源的组织方式 659 17.4.3 查看PE文件中的资源列表举例 663 17.5 重定位表 667 17.5.1 重定位表的结构 668 17.5.2 查看PE文件的重定位表举例 670 17.6 应用实例 672 17.6.1 动态获取API入口地址 672 17.6.2 在PE文件上添加执行代码 679 第18章 ODBC数据库编程 689 18.1 基础知识 689 18.1.1 数据库接口的发展历史 689 18.1.2 SQL语言 692 18.1.3 ODBC程序的流程 694 18.2 连接数据库 695 18.2.1 连接和断开数据库 695 18.2.2 连接字符串 700 18.3 数据的管理 703 18.3.1 执行SQL语句 703 18.3.2 执行结果的处理 708 18.3.3 获取结果集中的数据 710 18.3.4 事务处理 715 18.4 数据库操作的例子 717 18.4.1 结果集处理模块 718 18.4.2 例子的源代码 723 索引 734 参考文献 742
关闭
关闭