一、端口
三种芯片:接口卡(如网卡显卡)、主板上(如软驱硬驱)、其他芯片(如CMOS)。
共同点:和CPU的总线相连;CPU通过控制总线向芯片发出端口读写命令。
端口地址:CPU将芯片内部的寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。
CPU直接读写范围:CPU内部寄存器、内存单元、端口。
二、端口读写
范围:端口地址通过地址总线传送,最多有64KB个不同端口,地址范围为0~65535。
CPU访问端口:CPU通过地址总线将地址信息发出→通过控制总线发出端口读命令→端口所在的芯片将选中的端口数据通过数据总线送入CPU。
in/out指令:①8位端...


- [iamalian] :) 02/09 22:50
- [mess] 答案没问题~ 02/03 14:08
- [starrynight] 其实应该多一点珍惜 继续学习啊,呵呵,欢迎一下... 05/06 20:42
- [iamalian] 谢谢楼上的关注,希望共同进步! 关于笑话,有的话,一定给大家共享:) 05/05 21:21
- [younggay] 哈哈哈,博主的笑话有意思,让我想起了自己的大学上高数的点点滴滴。 等你回来在给大家讲笑话。 04/03 11:12
- [iamalian] 不好意思,是乱码,符号>表示下一步 03/31 15:21
- [游客] 里面的符号,就是那个圈里面有个R的是虾米意思? 03/31 13:45
- [iamalian] 多谢楼上的指教,有更详细的资料出处么? 03/31 11:55
- [younggay] 但在虚拟8086模式下直接运行程序时其结果仍然是全盘复制(这点有待高手解答)。 -------- 03/31 10:34
- [younggay] 将mov cx, cx改为sub cx,5(认为印刷错误) ================= 03/31 10:30
[2015-07-08 22:47] 第14章:端口
阅读全文 |
评论次数(0) |
浏览次数(772) |
所属类型(学习笔记)
[2015-07-06 23:38] 第13章:int指令
一、int指令
功能:执行int n指令,相当于引发一个n号中断的中断过程。
中断例程:系统将一些具有一定功能的子程序,以中断例程的方式提供给应用程序。
实质:int n/iret和call/ret很相似,都是调用一段程序;编写的过程要避免寄存器冲突。
栈:可以在中断例程中修改栈中数据,从而改变主程序的执行顺序。
二、BIOS和DOS
BIOS:①硬件系统的检测和初始化程序;②外部中断和内部中断的中断过程;③用于对硬件设备进行I/O操作的中断例程;④其他和硬件系统相关的中断例程。
安装过程:开机后从FFFF:0执行程序(跳转到BIOS的①)→建立BIOS的中断向量(中断例程固...
功能:执行int n指令,相当于引发一个n号中断的中断过程。
中断例程:系统将一些具有一定功能的子程序,以中断例程的方式提供给应用程序。
实质:int n/iret和call/ret很相似,都是调用一段程序;编写的过程要避免寄存器冲突。
栈:可以在中断例程中修改栈中数据,从而改变主程序的执行顺序。
二、BIOS和DOS
BIOS:①硬件系统的检测和初始化程序;②外部中断和内部中断的中断过程;③用于对硬件设备进行I/O操作的中断例程;④其他和硬件系统相关的中断例程。
安装过程:开机后从FFFF:0执行程序(跳转到BIOS的①)→建立BIOS的中断向量(中断例程固...
阅读全文 |
评论次数(0) |
浏览次数(791) |
所属类型(学习笔记)
[2015-07-02 14:16] 第12章:内中断
一、基本概念
中断信息:检测从CPU外部或内部产生的一种特殊信息并能立即对此信息进行处理;要求CPU马上进行处理,并向所要进行的该种处理提供了必备的参数的通知信息。
中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。
中断类型码:标识中断信息的来源(中断源),字节型数据,可以表示256种中断信息的来源。
内中断:①除法错误-0;②单步执行-1;③执行into指令-4;④执行int指令-n。
中断处理程序:处理中断信息的程序;根据中断类型码找到对应的中断处理程序。
中断向量表:①中断向量——中断处理程序的入口地址;IP-低地址+CS-高地址。②向量表——中断向量的...
中断信息:检测从CPU外部或内部产生的一种特殊信息并能立即对此信息进行处理;要求CPU马上进行处理,并向所要进行的该种处理提供了必备的参数的通知信息。
中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。
中断类型码:标识中断信息的来源(中断源),字节型数据,可以表示256种中断信息的来源。
内中断:①除法错误-0;②单步执行-1;③执行into指令-4;④执行int指令-n。
中断处理程序:处理中断信息的程序;根据中断类型码找到对应的中断处理程序。
中断向量表:①中断向量——中断处理程序的入口地址;IP-低地址+CS-高地址。②向量表——中断向量的...
阅读全文 |
评论次数(0) |
浏览次数(776) |
所属类型(学习笔记)
[2015-06-27 09:42] 第11章:标志寄存器
一、概述
作用:存储相关指令的某些执行结果;为CPU执行相关指令提供行为依据;控制CPU的相关工作方式。
特点:按位起作用,有意义的是0,2,4,6,7,8,9,10,11位,存储的信息被称为程序状态字(PSW)。
指令:运算指令影响标志寄存器(flag),传送指令不影响。
二、标志位
ZF:第6位,零标志位,debug-ZR/NZ;结果为0,zf=1,结果不为0,zf=0。
PF:第2位,奇偶标志位,debug-PE/PO;二进制位中,1的个数是偶数,pf=1,为奇数,pf=0。
SF:第7位,符号标志位,debug-NG/PL;结果为负,sf=1,结果非负,sf=0。
...
作用:存储相关指令的某些执行结果;为CPU执行相关指令提供行为依据;控制CPU的相关工作方式。
特点:按位起作用,有意义的是0,2,4,6,7,8,9,10,11位,存储的信息被称为程序状态字(PSW)。
指令:运算指令影响标志寄存器(flag),传送指令不影响。
二、标志位
ZF:第6位,零标志位,debug-ZR/NZ;结果为0,zf=1,结果不为0,zf=0。
PF:第2位,奇偶标志位,debug-PE/PO;二进制位中,1的个数是偶数,pf=1,为奇数,pf=0。
SF:第7位,符号标志位,debug-NG/PL;结果为负,sf=1,结果非负,sf=0。
...
阅读全文 |
评论次数(1) |
浏览次数(575) |
所属类型(学习笔记)
[2015-06-12 09:32] 第10章:CALL和RET指令
一、ret和retf
ret:用栈中的数据,修改IP的内容,实现近转移;相当执行 pop IP 。
retf:用栈中的数据,修改CS和IP的内容,实现远转移;相当执行 pop IP pop CS 。
二、call指令
位移转移:call 标号,IP增加指向下一条指令→新IP入栈→从缓冲器中执行当前指令(IP进行16位位移),相当于 push IP → jmp near ptr 标号。
目的地址转移:call far ptr 标号,相当于 push CS → push IP → jmp far ptr 标号 。
寄存器转移:call (16位) reg,相当于 push IP →...
ret:用栈中的数据,修改IP的内容,实现近转移;相当执行 pop IP 。
retf:用栈中的数据,修改CS和IP的内容,实现远转移;相当执行 pop IP pop CS 。
二、call指令
位移转移:call 标号,IP增加指向下一条指令→新IP入栈→从缓冲器中执行当前指令(IP进行16位位移),相当于 push IP → jmp near ptr 标号。
目的地址转移:call far ptr 标号,相当于 push CS → push IP → jmp far ptr 标号 。
寄存器转移:call (16位) reg,相当于 push IP →...
阅读全文 |
评论次数(0) |
浏览次数(297) |
所属类型(学习笔记)
[2015-06-05 10:28] 第9章:转移指令的原理
一、分类
依前提:无条件转移指令(jmp)、条件转移指令、循环指令(loop)、过程、中断。
依行为:段内转移,只修改IP,短转移范围为-128~127,近转移范围为-32768~32767;段间转移,同时修改CS和IP,又称远转移。
offset:操作符,取得标号的偏移地址。
二、jmp指令
位移转移:①格式:jmp short 标号 / jmp (near ptr) 标号;②功能:(IP)=(IP)+8/16位位移;③位移:标号处的地址-jmp指令后的第一个字节的地址,由编译器算出。
目的地址转移:①格式:jmp far ptr 标号;②功能:远转移,(CS)=标号所在段的...
依前提:无条件转移指令(jmp)、条件转移指令、循环指令(loop)、过程、中断。
依行为:段内转移,只修改IP,短转移范围为-128~127,近转移范围为-32768~32767;段间转移,同时修改CS和IP,又称远转移。
offset:操作符,取得标号的偏移地址。
二、jmp指令
位移转移:①格式:jmp short 标号 / jmp (near ptr) 标号;②功能:(IP)=(IP)+8/16位位移;③位移:标号处的地址-jmp指令后的第一个字节的地址,由编译器算出。
目的地址转移:①格式:jmp far ptr 标号;②功能:远转移,(CS)=标号所在段的...
阅读全文 |
评论次数(0) |
浏览次数(297) |
所属类型(学习笔记)
[2015-05-30 22:27] 第8章:数据处理的两个基本问题
描述性符号:①reg:寄存器,ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di。②sreg:段寄存器,ds,ss,cs,es。
bx、si、di和bp:①可以用在“[...]“中进行内存单元的寻址。②bx&bp、si&di不能放在一起使用。③bp默认的段地址在ss中。
数据位置:①位置:CPU内部、内存和端口。②表达:立即数(idata)、寄存器、段地址(SA)和偏移地址(EA)。③寻址方式:
(如图)
数据长度:①字节操作(byte)和字操作(word)。②通过寄存器指明。③通过操作符 X ptr ,X=word/byte。④默认,如pu...
bx、si、di和bp:①可以用在“[...]“中进行内存单元的寻址。②bx&bp、si&di不能放在一起使用。③bp默认的段地址在ss中。
数据位置:①位置:CPU内部、内存和端口。②表达:立即数(idata)、寄存器、段地址(SA)和偏移地址(EA)。③寻址方式:
(如图)
数据长度:①字节操作(byte)和字操作(word)。②通过寄存器指明。③通过操作符 X ptr ,X=word/byte。④默认,如pu...
阅读全文 |
评论次数(0) |
浏览次数(307) |
所属类型(学习笔记)
[2010-02-09 22:57] 第七章:更灵活的定位内存地址的方法
学习笔记
1、and,逻辑与指令,按位进行与运算,可以将操作对象的相应位设为0
or ,逻辑或指令,按位进行或运算,可以将操作对象的相应位设为1
2、在文本编辑过程中,计算机对输入信息以及显卡对显存内容的处理都是按照ASCII码的规则进行的。
用' '指明的数据是以字符的形式给出的
大小写转换问题:16进制小写比大写大20H;二进制小写第五位为1,而大写为0
3、mov ax,[bx+idata]→mov ax,[idata+bx]→mov ax,idata[bx]→mov ax,[bx].idata 这几个是等价的
[bx+idata]的方式为高级语...
1、and,逻辑与指令,按位进行与运算,可以将操作对象的相应位设为0
or ,逻辑或指令,按位进行或运算,可以将操作对象的相应位设为1
2、在文本编辑过程中,计算机对输入信息以及显卡对显存内容的处理都是按照ASCII码的规则进行的。
用' '指明的数据是以字符的形式给出的
大小写转换问题:16进制小写比大写大20H;二进制小写第五位为1,而大写为0
3、mov ax,[bx+idata]→mov ax,[idata+bx]→mov ax,idata[bx]→mov ax,[bx].idata 这几个是等价的
[bx+idata]的方式为高级语...
阅读全文 |
评论次数(0) |
浏览次数(511) |
所属类型(学习笔记)
[2010-01-29 23:01] 第六章:包含多个段的程序
1、程序运行空间:加载的过程由系统自动分配;执行的过程向系统申请。
2、end作用:程序结束(end),程序开始(end 标号)
3、可执行文件由描述信息和程序组成
程序来自于源程序中的汇编指令和数据
描述信息是由编译、连接程序对源程序中的伪指令进行处理后所得到的信息
程序中第一条要执行的指令,是由描述信息指明的
4、程序6.3中第二个dw定义的数据是为了获取内存空间,其在源程序中的位置决定了其在执行时的位置
5、多个段
作用:使程序条理化;解决64KB问题
段名相当于标号,代表段地址
CPU处理定义段的内容,完全是靠程序中具体的汇编指令...
2、end作用:程序结束(end),程序开始(end 标号)
3、可执行文件由描述信息和程序组成
程序来自于源程序中的汇编指令和数据
描述信息是由编译、连接程序对源程序中的伪指令进行处理后所得到的信息
程序中第一条要执行的指令,是由描述信息指明的
4、程序6.3中第二个dw定义的数据是为了获取内存空间,其在源程序中的位置决定了其在执行时的位置
5、多个段
作用:使程序条理化;解决64KB问题
段名相当于标号,代表段地址
CPU处理定义段的内容,完全是靠程序中具体的汇编指令...
阅读全文 |
评论次数(0) |
浏览次数(612) |
所属类型(学习笔记)
[2010-01-28 22:13] 第五章:[bx]和loop指令
1、[bx]表示一个内存单元(变量),它的偏移地址在bx中,段地址默认在DS中。
2、cx中存放循环次数→标号在前面→循环体在中间→结尾处:loop 标号
3、描述一个内存单元,需要两种信息:地址、长度(类型)
在汇编程序中,以字母开头的数据要在前面加0
用字单元接收字节单元:mov al,bl→mov ah,0
4、段前缀:在访问内存单元的指令中用于显式地指明内存单元段地址的符号
在源程序中,[idata]被解释为idata(debug为偏移地址),解决方法——
1、先将idata传送给bx,再用[bx];
2、显式地给出段地址,如ds:[ida...
2、cx中存放循环次数→标号在前面→循环体在中间→结尾处:loop 标号
3、描述一个内存单元,需要两种信息:地址、长度(类型)
在汇编程序中,以字母开头的数据要在前面加0
用字单元接收字节单元:mov al,bl→mov ah,0
4、段前缀:在访问内存单元的指令中用于显式地指明内存单元段地址的符号
在源程序中,[idata]被解释为idata(debug为偏移地址),解决方法——
1、先将idata传送给bx,再用[bx];
2、显式地给出段地址,如ds:[ida...
阅读全文 |
评论次数(0) |
浏览次数(575) |
所属类型(学习笔记)