1. 直接定制表
1.1 移位指令
1.2 操作显存数据
1.3 描述内存单元的标号
1.4 数据的直接定址表
1.5 代码的直接定址表
2. 内中断
2.1 中断及其处理
2.2 编写中断处理程序
2.3 单步中断
2.4 int 指令引发的中断
2.5 BIos , DOS 中断处理
2.5.1 BIOS——基本输入输出系统
BIOS,是在系统板的ROM中存放着一套程序
; 容量:8KB
; 地址:从FE000H开始
BIOS中的主要内容
(1)硬件系统的检测和初始化程序
(2)外部中断和内部中断的中断例程
(3)用于对硬件设备进行I/O操作的中断例程
(4)其他和硬件系统相关的中断例程
使用BIOS功能调用,程序员不用了解硬件操作细
节,直接使用指令设置参数,并中断调用BIOS例
程,即可完成相关工作!
使用BIOS功能调用:(1)方便编程;
(2)能写出简洁、可读性好、易于移植的程序。
2.5.2 BIOS中断调用示例
任务:在屏幕的5行12列显示3个红底高亮闪烁绿色的’a’
用BIOS的10h中断
; (ah)=2时,调用第10h中断例程的2号子程序,设置光标位置
; (ah)=9时,调用第10h中断例程的9号子程序,在光标位置显示字符
assume cs:code
code segment
mov ah,2 ;置光标功能
mov bh,0 ;第0页
mov dh,5 ;dh中放行号
mov dl,12 ;dl中放列号
int 10h
mov ah,9 ;显示字符功能
mov al,'a' ;字符
mov bl,11001010b;颜色属性
mov bh,0 ;第0页
mov cx,3 ;字符重复个数
int 10h
mov ax,4c00h
int 21h
code ends
end
2.5.3 有哪些BIOS中断, 怎么用?
2.5.4 DOS中断
2.5.5 int 21HDOS 中断例程的应用
4ch号功能:程序返回
;功能号在ah,返回结果保存在al
:用法:
mov ah,4ch
mov al,0
int 21h
:09h号功能:在光标位置显示字符串
; ds:dx指向要显示的字符串(用’$'结束)
: 用法:
mov ah ,9
int 21h
: 例:编程在屏幕的5行12列显示字符串
“welcome to masm!”
assume cs:code
data segment
db 'Welcome to masm!','$'
data ends
code segment
start: mov ah,2 ; 置光标
mov bh,0 ; 第0页
mov dh,5 ; dh中放行号
mov dl,12 ; dl中放列号
int 10h
mov ax,data
mov ds,ax
mov dx,0 ;ds:dx指向字符串的首地址data:0
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
2.5.6 BIOS和DOS中断例程的安装过程
(1)CPU 一加电,初始化(CS)=0FFFFH,(IP)=0,自动从FFFF:0单元开始执行程序。FFFF:0处有一条转跳指令,CPU执行该指令后,转去
执行BIOS中的硬件系统检测和初始化程序。
(2)初始化程序将建立BIOS 所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。
(3) 硬件系统检测和初始化完成后,调用int 19h
进行操作系统的引导。从此将计算机交由操作系统控制。
(4)DOS 启动后,除完成其它工作外,还将它所提供的中断例程装入内存,并建立相应的中断向量