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

我的博客

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

[2012-05-30 18:33] 第十七章笔记

第十七章 使用BIOS进行键盘输入和磁盘读写

键盘缓冲区中有16个字单元,可以存储15个按键的扫面码和对应的ascii码。

int 16H ,0号功能
① 检测键盘缓冲区中是否有数据;
② 没有则继续第一步;
③ 读取键盘缓冲区第一个字单元中的键盘输入;
④ 将读取的扫描码送入ah,ascii码送入al;
⑤ 将已读取的键盘输入从缓冲区中删除。

最基本的字符串输入程序,具备的功能:
① 在输入的同时需要显示这个字符串;
② 一般在输入回车符后,字符串输入结束;
③ 能够删除已经输入的字符。

字符串的存储空间实际上是一个字符栈,字符栈中的所有字符,从栈底到...
阅读全文 | 评论次数(0) | 浏览次数(783) | 所属类型(汇编笔记)

[2012-05-23 23:42] 第16章笔记

第十六章 直接定址表
数据标号:它标记了存储数据的单元的地址和长度。
在其他段中也可以使用数据标号,在后面加有“:”的地址标号,只能在代码段中使用。

如果想在代码段中直接用数据标号访问数据,则需要用伪指令assume 将标号所在的一个段和一个段寄存器联系起来。否则编译器在编译的时候,无法确定标号的段地址在哪一个寄存器中,当然这是编译器工作需要的,同时也要用指令对段寄存器进行设置。

可以将标号当做数据来定义。
数据标号处存储的双字型数据为标号的段地址和偏移地址。

seg操作符,取得某一标号的段地址。

用直接定址表的目的:
① 为了算法的清晰和简洁;
② 为了加快...
阅读全文 | 评论次数(2) | 浏览次数(821) | 所属类型(汇编笔记)

[2012-05-18 22:20] 第15章笔记

第十五章 外中断
cpu通过端口和外部设备进行联系。
外中断源有两类:
① 可屏蔽中断

当cpu检测到可屏蔽中断信息时,如果IF=1则cpu在执行完当前指令后响应中断,引发中断过程:如果IF=0,则不响应可屏蔽中断。
可屏蔽中断信息来自于cpu内部,中断类型码是通过数据总线送入cpu的;而内中断的中断类型码是在cpu内部产生的。
中断过程将IF置0的原因就是,在进入中断处理程序后,禁止其他的可屏蔽中断。
sti,设置IF=1
cli,设置IF=0

② 不可屏蔽中断
当cpu检测到不可屏蔽中断信息时,则在执行完当前指令后,立即响应,引发中断过程。
对于8086cpu...
阅读全文 | 评论次数(2) | 浏览次数(791) | 所属类型(汇编笔记)

[2012-05-10 19:51] 第十四章笔记

第十四章 端口
在PC机系统中,和cpu通过总线相连芯片除各种寄存器外,还有以下3种芯片:
① 各种接口卡上的接口芯片,他们控制接口卡进行工作;
② 主板上的接口芯片,cpu通过他们对部分外设进行访问;
③ 其他芯片,用来存储相关的系统消息,或进行相关的输入输出处理。

从cpu的角度,将这些寄存器都当做端口,对他们进行统一编址从而建立了一个统一的端口地址空间,每一个端口在地址空间中都有一个地址。

cpu可以直接读写以下三个地方的数据:
① cpu内部的寄存器;
② 内存单元;
③ 端口

在PC系统中,cpu最多可以定位64KB个不同的端口,则端口地址的范围为0~...
阅读全文 | 评论次数(1) | 浏览次数(222) | 所属类型(汇编笔记)

[2012-05-06 21:06] 第十三章笔记

第十三章 int指令
int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。
可以在程序中使用int指令调用任何一个中断的中断处理程序。
一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。

int指令和iret指令的配合使用与call指令和ret指令的配合使用具有相似的思路。

编写中断例程和子程序的时候,应该注意例程中用到的寄存器的值的保存和恢复。(成对编程)
可以利用iret指令,用栈中的内容修改cs、ip。

BIOS中主要包含以下几部分内容:
① 硬件系统的检测和初始化程序;
② 外部中断和内部中断的中断例程...
阅读全文 | 评论次数(2) | 浏览次数(231) | 所属类型(汇编笔记)

[2012-05-04 20:27] 第十二章笔记

第十二章 内中断
中断源分为:
①硬件中断
②软件中断(int 21h也属于此)

硬件中断包括:
① 外中断:外设中断请求(可屏蔽)
② 内中断:硬件出错,运算出错(不可屏蔽)

当cpu有如下情况发生的时候,将产生相应的中断信息
① 除法错误,比如执行div指令产生的除法溢出
② 单步执行;
③ 执行into指令;
④ 执行int指令。

8086cpu用称为中断类型码的数据来标识中断信息的来源。中断类型码为字节型数据,可以表示256种中断信息的来源。

用来处理中断信息的程序被称为中断处理程序,一般来说,需要对不同的中断信息编写不同的中断信息编写不同的处...
阅读全文 | 评论次数(3) | 浏览次数(208) | 所属类型(汇编笔记)

[2012-05-02 19:45] 第十一章笔记

第十一章 标志寄存器(flag)
8086cpu的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW-program state word)
flag寄存器是按位起作用的。
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 
0  0  0  0  of df if tf sf zf  0 af  0 pf  0 cf 

flag的第2位是PF,奇偶标志位。其结果最低有效字节中的所有bit位中1的个数是否为偶数,为偶数pf=1,为奇数pf=0

flag的第6位是ZF(zero flag),零标志位。如果结果为0,那么...
阅读全文 | 评论次数(0) | 浏览次数(223) | 所属类型(汇编笔记)

[2012-05-02 19:40] 第十章笔记

第十章 call和ret指令
ret指令用栈中的数据,修改ip的内容,从而实现近转移;
retf指令用栈中的数据修改cs和ip的内容,从而实现远转移。

cpu执行ret指令时,进行下面两步操作:     pop ip
①(ip)=((ss)*16=(sp))
②(sp)=(sp)+2
执行retf指令时,进行下面4步操作:
①(ip)=((ss)*16=(sp))
②(sp)=(sp)+2
③(cs)=((ss)*16=(sp))
④(sp)=(sp)+2

call指令不能实现短转移。
cpu执行call指令时,进行两步操作:
① 将当前的ip或cs和ip压入...
阅读全文 | 评论次数(0) | 浏览次数(198) | 所属类型(汇编笔记)

[2012-04-01 07:03] 第九章笔记

第九章 转移指令的原理
可以修改ip,或同时修改cs和ip的指令统称为转移指令。
概括地讲,转移指令就是可以控制cpu执行内存中某处代码的指令。
8086cpu的转移行为有以下几类:
•只修改ip时,称为段内转移,比如:jmp ax。
•同时修改cs和ip时,称为段间转移,比如:jmp 1000:0.
由于转移指令对ip的修改范围不同,段内转移又分为:短转移和近转移。
•短转移ip的修改范围为-128~127。
•近转移ip的修改范围为-32768~32767。
8086cpu的转移指令分为以下几类。
•无条件转移指令
•条件转移指令
•循环指令
•过程
•中断
...
阅读全文 | 评论次数(1) | 浏览次数(220) | 所属类型(汇编笔记)

[2012-04-01 06:46] 第八章笔记

第八章 数据处理的两个基本问题
计算机是进行数据处理、运算的机器。
描述性符号:reg(寄存器)和sreg(段寄存器)
reg的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di
sreg的集合包括:ds、ss、cs、es

在8086cpu中,只有这四个寄存器(bx、bp、si、di)可以用在“[…]”中来进行内存单元的寻址。
在“[…]”中,这四个寄存器可以单个出现,或只能以四种组合出现:bx和si、bx和di、bp和si、bp和di。
只要在“[…]”使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。...
阅读全文 | 评论次数(1) | 浏览次数(196) | 所属类型(汇编笔记)
页码数(2):  1  2