汇编网首页登录博客注册
iamalian的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈

[2015-07-08 22:47] 第14章:端口

一、端口
三种芯片:接口卡(如网卡显卡)、主板上(如软驱硬驱)、其他芯片(如CMOS)。
共同点:和CPU的总线相连;CPU通过控制总线向芯片发出端口读写命令。
端口地址:CPU将芯片内部的寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。
CPU直接读写范围:CPU内部寄存器、内存单元、端口。

二、端口读写
范围:端口地址通过地址总线传送,最多有64KB个不同端口,地址范围为0~65535。
CPU访问端口:CPU通过地址总线将地址信息发出→通过控制总线发出端口读命令→端口所在的芯片将选中的端口数据通过数据总线送入CPU。
in/out指令:①8位端...
阅读全文 | 评论次数(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的中断向量(中断例程固...
阅读全文 | 评论次数(0) | 浏览次数(791) | 所属类型(学习笔记)

[2015-07-02 14:16] 第12章:内中断

一、基本概念
中断信息:检测从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。
...
阅读全文 | 评论次数(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        →...
阅读全文 | 评论次数(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)=标号所在段的...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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]的方式为高级语...
阅读全文 | 评论次数(0) | 浏览次数(511) | 所属类型(学习笔记)

[2010-01-29 23:01] 第六章:包含多个段的程序

1、程序运行空间:加载的过程由系统自动分配;执行的过程向系统申请。
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...
阅读全文 | 评论次数(0) | 浏览次数(575) | 所属类型(学习笔记)
页码数(2):  1  2