WIN32程序设计-第一个窗口程序(4)
开始了解窗口1.窗口是什么1.)使用窗口的原因
懒得说了,自行查阅
2.)窗口和程序的关系
一个窗口不一定是程序。可能是一个程序的一部分
一个程序也不能是一个窗口
窗口是人和计算机交互的界面
第一个标准的窗口为界面的程序的架构,而不是windows所有程序
2.窗口界面
窗口大部分都长得差不多
1类的继承
窗口中有很多的部分,每一个部分都有自己的行为模式。
12类-->对象就是使用api函数来写程序
3.窗口程序是如何工作的1.)窗口程序的运行模式1面向对象 面向过程
窗口程序是事件驱动的
1类似:面向对象
2.)FirstWindow源代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610 ...
WIN32程序设计-阅读必看(0)
该内容来自《琢石成器》——Windwos环境下32位汇编语言程序设计
和b站小甲鱼win32视频
所自己写的部分笔记
WIN32程序设计-使用MASM(3)
Win32汇编源程序的结构
通过helloword走进win32汇编
12345678910111213141516171819202122 .386 .model flat,stdcall option casemap:noneinclude windows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.lib .dataszCaption db 'A MessageBox',0szText db 'Hello,World!',0 .codestart: invoke MessageBox,NULL,offset szText,\ offset szCaption,MB_OK invoke ExitProcess,NULL end start
1.模式定义
程序的第一部分是模式和源程序格式的定义语句
123.386.model flat,stdcalloption casemap:none
这些指令定义了程序 ...
8086汇编-必读内容(0)
该内容是根据
王爽的《汇编语言》+小甲鱼的b站视频所自己写的笔记。初学者,可能又会很多不当之处
WIN32程序设计-第一个程序(2)
1.MASM32 SDK介绍
目标是用汇编写出专业的大型程序:
1231.除了编译器,连接器外,还包含了汇编需要用到的各种详尽的头文件和导入库文件,导入库文件取自Visual C++ 的导入库2.收集来自世界各地Win32汇编爱好者的源程序以及很多详细的列子程序3.发布者还为他编写了一个简单的IDE环境,包括一个专用的汇编源程序编译器和源程模板生成器
安装目录说明
1234567D:\masm32:IDE环境,内带文本编译程序和模板生成程序D:\masm32\include:所有的导入库文件D:\masm32\lib:所有的导入库文件D:\masm32\bin:可执行文件目录,包括ml.exe,link.exe,rc.exeD:\masm32\help:帮助文档D:\masm32\m32lib:一些常用的c子程序的汇编实现源程序,很有价值还有一些其他奇奇怪怪的好用的【以后再说】
经过了很久的调试,最终在我的电脑上,如果想用win32汇编需要如下操作【手动操作】
1234561.在d:\masm32中运行cmd2.设置环境变量,这里用的是var.bat批处理【运行一下就好了 ...
WIN32程序设计-必须了解的基础知识(1)
大纲:(1)80x86处理器的互作模式123-实模式-保护模式-虚拟8086模式
(2)Windows的内存管理机制12345-Dos操作系统的内存安排情况-80376的内存寻址机制-80386的内存分页机制-windows的内存安排-从Win32汇编的角度看内存寻址
(3)Windows的特权保护机制123-80386的中断和异常-80386的保护机制-Windows的保护机制
80x86处理器的互作模式
80386以后的处理器有3种互作模式
123-实模式-保护模式-虚拟8086模式
其实,实模式和虚拟8086模式都是为了向下兼容而设置的,保护模式才是我们的主角,是我们现代系统实际上的互作模式
只有在保护模式下,32位CPU的寻址才能达到4GB的地址空间,同时,也能实现多任务,内存分页管理和优先级保护等先进的机制
补:Windows 7的启动过程1.开启电源
1计算机系统将进行加电自检[POST].如果通过之后BIOS会读取主引导记录[MBR]---被标记位启动设备的硬盘的首扇区,并传送被Windows 7 建立的控制编码给MBR
引导型病毒
12'鬼 ...
8086汇编-基础知识(1)
引言汇编语言是直接在硬件之上互作的编程语言
学会用汇编的思维去使用C语言
比汇编更底层的 –> 机器语言
【进制转化】【可以再去学一下】
【王爽的汇编语言】
寄存器123简单讲是CPU中可以存储数据的器件,一个CPU中有多个寄存AXBX
1以后还会讲咯
程序–>汇编指令–>编译器–>机器码
汇编语言和机器指令是一一调用的
汇编语言的组成1.汇编语言有3类组成:
1231.汇编指令【机器码的助记符】2.伪指令【由编译器执行】3.其他符号【由编译器识别】
2.汇编语言的核心是汇编指令,它决定了汇编语言的特性
【编码的奥秘】这本书推荐看看。
储存器1.CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个CPU互作,就必须向它提供指令和数据
2.指令和数据在存储器中存放,也就是平时说的内存
3.在一台PC中的内存的作用仅次于CPU
4.离开了内存,性能在好的CPU也无法互作
5.磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被cpu使用
指令和数据1.指令和数据是应用上的概念
2.在内存或磁盘上,指令和数据没有任何区别,都是二进制 ...
8086汇编-使用BIOS进行键盘和磁盘的读写(17)
引言大多数有用的程序都需要处理用户的输入,家农安的输入是最基本的输入
程序和数据通常需要长期存储,磁盘是我们常用的存储设备。BIOS为这两种外设的I/O提供了最基本的中断例程
1.int 9 中断例程对键盘输入的处理CPU在9号中断发生后,执行int 9 中断例程,从60H端口读出扫描码,并将其转化为相应的SCII码或状态信息,存储在内存的指定空间【键盘缓冲区或状态字节】种
所以,一般的键盘输入,在CPU执行完int 9 中断例程后,都放到了键盘缓冲区中
2.使用int 16h中断例程读取键盘缓冲区BIOS提供了int 16h 中断例程供程序员调用
int 16h 中断例程中包含的一个最重要的功能是从键盘缓冲区中读取一个键盘输入,该功能的编号为0
下面的指令从键盘缓冲区中读取一个键盘输入,并将其从缓冲区删除
1234mov ah,0int 16h结果:(ah)=扫描码,(al)=ASCII码
int 16h 中断例程的0号功能
123451.检测键盘缓冲区中是否有数据2.没有则继续做第一步3.读取缓冲区第一个字单元中的键盘输入4.将读取的扫码送入ah,ASCII码送入al中5.将已 ...
8086汇编-直接定址表(16)
1.描述了单元长度的标号一般来说,普通的标号仅仅代表了内存单元的地址
比如:
1234567891011121314151617181920assume cs:codecode segment a: db 1,2,3,4,5,6,7,8 b: dw 0start: mov si,offset a mov bx,offset b mov cx,8s: mov al,cs:[si] mov ah,0 add cs:[bx],ax inc si loop s mov ax,4c00H int 21h code endsend start
还有一种标号,还可以表示内存的单元长度
比如:
1234567891011121314151617181920assume cs:codecode segment a db 1,2,3,4,5,6,7,8 b dw 0start: mov si,offset a mov bx,offset b mov cx,8s: mov al,cs:[si] mov ah,0 add cs:[bx],ax inc si loop s mov ax,4c00H int ...
8086汇编-外中断(15)
引言之前我们讨论的都是CPU对指令的执行。我们知道CPU在计算机系统中,除了能够执行指令外,还能进行运算,还应该能够对外部设备进行控制,接受它们的输入,向他们输出
也就是说:CPU除了运算能力外,还有I/O(input/output)能力
1.接口芯片和端口在PC系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU将这些寄存器当作端口来访问。
外设的输入和CPU的输出都不是直接的,而是通过送入相关的接口芯片的端口中。
1每一个外部设备都有一个小小的,类似于内存一样的端口
1CPU通过端口和外部设备进行联系
2.外中断信息由CPU的自己产生的中断信息叫内中断,非CPU由外部中断的叫外中断
外中断一共有2种
121.可屏蔽中断【要看IF位的设置】2.不可屏蔽中断【少】
当CPU检测到可屏蔽信息的时候
1234如果IF=1,则CPU在执行完当前指令后,响应中断如果IF=0,则不响应中断所以在进入某个中断的时候,就会自动的把IF设置为0
内中断的过程
12345671.取得中断类型码N2.pushf3.TF = 0,IF = 04.push CS5.pus ...