Chinaunix首页 | 论坛 | 博客
  • 博客访问: 184771
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 601
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-03 18:51
个人简介

大数据算法,分布式技术,spark技术爱好者

文章分类

全部博文(29)

文章存档

2015年(4)

2014年(3)

2013年(22)

分类: 嵌入式

2013-07-09 21:24:04

1.深入的理解int中断的压栈过程,和call其实类似,都是把当前call指令的下一条指令偏移地址压栈。说以loop指令,jmp指令都可以用int中断来实现,进中断时要保存ed-st。进入中断则再加st就是ed了,st在栈中,如果想取得,必须用bp索引。而不能用sp。更不能pop,push,不能修改栈容量。
2.bios
1)硬件系统的检测和初始化程序;
2)外部中断和内部中断的中断例程
3)用于对硬件设备进行I/O操作的中断例程
4)其他和硬件系统相关的中断例程
3.dos的中断例程建立在bios的中断例程之上,为程序猿在编程时提供工具。用int指令可以直接调用bios和dos提供的中断例程。
4.bios,dos例程安装过程:
1)第一条指令:FFFF:0 跳转到bios的硬件设备初始化检测程序。
2)根据硬件bios加载例程地址到中断向量表,而例程本身早已保存在rom中!
3)硬件系统检测完成,调用int 19h,进行操作系统引导。装入例程,并建立相应的中断向量表项。
4)int 10h是bios提供的中断例程,包含多个与屏幕输出相关的例程。
5)int 21h是dos提供的中断例程。
mov ah,4ch ;程序返回
mov al,0 ;返回0
int 21h
6)rep + 命令,反复执行一个命令cx次
200 dup(2)是200个重复出现的数字2,是数据重复定义命令
7)习题最后一道很巧妙的用一个数组保存变长数据首地址,使得在代码段可以循环访问,很有点中断表的味道。这种指针数组的思想很值得推广。


阅读(1804) | 评论(0) | 转发(0) |
0

上一篇:第十二章 内中断

下一篇:第十四章 端口

给主人留下些什么吧!~~