《微机原理第四章课件》由会员分享,可在线阅读,更多相关《微机原理第四章课件(55页珍藏版)》请在金锄头文库上搜索。
1、1,第三节 8086/8088的指令系统(续) 六. 处理机控制指令 七串处理指令 第四节 DOS操作系统简介,2,作业: 2-23 补充题1:应用LODS和STOS 内存中有一个首地址为BLOCK补码表示的有符号数的数据块。请编写程序段 要求将正、负数分开,分别存于二个缓冲区: 存放正数的缓冲区首址为PUOS-DATA, 存放负数的缓冲区首址为MINUS-DATA。 补充题2 :请编写程序段 利用REP NE SCASB指令要搜索的关键字 放在(AL)或(AX)中, 搜索某一数据块或字符串中有无关 键字, 若有,把搜索次数记下来,且记录关键字地址; 若次数为0,表示没有要搜索的关键字。 复习
2、内容:P7276,P83-84 预习内容:97110,3,处理机控制指令 1、标志处理指令 CLC, STC, CMC, CLD, STD, CLI, STI 2、 处理机控制指令 HLT, NOP, WAIT, ESC, LOCK,4,1、 标志处理指令 设置和清除标志的指令,只影响指令指定的标志,5,2、 处理机控制指令 暂停指令HLT 格式 HLT 执行 使CPU处于暂停状态 用于等待外部中断,中断处理结束后, 继续执行HLT后的下一条指令 例 、 、 STI ;允许外部中断 HLT ;等待中断 MOV AX, 0 、 、 (HLT指令在第6章中断技术用到),6, 空操作指令NOP 格式
3、 NOP 指令不执行任何操作,7,七、串处理指令 串的基本概念 顺序存放在内存中的一组数据,称为串。 用串的首(末)地址、元素类型、串的长度表示。,8,串操作种类 串传送 将串从内存某一区域传送到另一区域。 从串取 从串中取出某一元素。 存入串 将某个数据存入串中。 串比较 对两个串进行比较。 搜索串 在串中搜索(查找)某数据(关键字),9,10, 串指令 串传送 MOVS 从串取 LODS 存入串 STOS 串比较 CMPS 搜索串 SCAS,11,12, 只有一个存储器操作数的串指令 如 LODS(从串取) STOS(存入串) SCAS(搜索串) 另一个操作数在 AL (字节操作) 或 A
4、X (字操作) 影响标志情况 CMPS(串比较)、SCAS(串搜索)影响标志, MOVS(串传送)、LODS(从串取)、STOS(存入串)不影响标志。,13,14,15,存入串 格式 STOSB 存入字节 STOSW 存入字 STOSB执行操作 (ES:DI) (AL) 将AL存入目的串 (DI ) (DI ) 1 修改目的串指针 其中: DF = 0 ,用 + DF = 1 ,用 - STOSW执行操作 (ES:DI) (AX) 将AX存入目的串 (DI) (DI ) 2 修改目的串指针 其中: DF = 0 ,用 + DF = 1 ,用 -,16,17,18, 重复控制前缀 重复前缀REP
5、 当相等重复前缀REPZ /REPE 当不相等重复前缀REPNZ /REPNE,19,重复前缀REP 执行过程: (1)当(CX)= 0 ,结束REP, 执行REP下一条指令。 (2)当(CX)0,将CX 的 内容减1, 执行REP后的串指令,返回 (1)。 例 LEA DI, destination LEA SI, source MOV CX,20 REP MOVSB MOV AX, 0 只在(CX)=0时退出循环,20,当相等重复前缀REPZ 执行过程: (1) 当(CX)= 0 , 结束REPZ, 执行REPZ下一条指令; (2) 当(CX)0,将CX 的内容减1, 执行REPZ后的串指
6、令; (3) 当ZF = 1, 返回 (1) ; (4) 当ZF1, 则结束REPZ, 执行REPZ下一条指令。 (CX)减1操作不影响标志 ZF标志由串操作决定,21,当不相等重复前缀REPNZ 执行过程: (1) 当(CX )= 0 , 结束REPNZ, 执行REPNZ下一条指令。 (2)当(CX)0,将CX 的内容减1, 执行REPNZ后的串指令。 (3) 当ZF = 0, 返回(1); (4) 当ZF0, 则结束REPNZ, 执行REPNZ下一条指令。,22,例1 用REP MOVS 进行数据块传送。 编程: 设置传送方向 用CLD 使DF = 0, 地址增加方向(正向) 用STD 使
7、 DF = 1, 地址减小方向(反向) 设置源串地址 将源串首地址(DF=0),或末地址(DF=1)放入 DS、SI中。 设置目的串地址 将目的串首地址(DF=0),或末地址(DF=1)放入 ES、DI中。 设置串长度 将串的长度(传送次数)放入CX中。 字节传送用 REP MOVSB 字传送 用 REP MOVSW,23,24,data1 SEGMENT str1 DB ABCD ;源串 data1 ENDS data2 SEGMENT str2 DB 4 DUP(?) ;缓冲区 data2 ENDS code SEGMENT 、 CLD ;DF=0,正方向传送 MOV AX,data1 ;
8、源串首地址的段值 DS MOV DS,AX LEA SI,str1 ;源串首地址的偏值 SI MOV AX,data2 ;目的串首地址的段值 ES MOV ES,AX LEA DI,str2 ;目的串首地址的偏值 DI MOV CX, 4 ;串长度 CX REP MOVSB ;串传送 、 code ENDS,25,data1 SEGMENT str1 DB ABCD data1 ENDS data2 SEGMENT str2 DB 4 DUP(?) data2 EMDS code SEGMENT 、 CLD MOV AX,data1 MOV DS,AX LEA SI,str1 MOV AX,d
9、ata2 MOV ES,AX LEA DI,str2 MOV CX, 4 REP MOVSB 、 code ENDS,假设程序经汇编、连接后,装入内存的情况如下:,26,程序执行结果:,27,例2 比较string1和string2的两串, 长度为8字节,28,用REPZ CMPS 进行串比较 编程: 设置比较方向 (STD或CLD) 设置源串、目的串地址 将源串首地址(DF=0时),或末地址(DF=1时)放入 DS、SI 将目的串首地址(DF=0时),或末地址(DF=1时)放入ES、DI 设置串长度 将串的长度放入CX中 按字节比较用 REPZ CMPSB 按字比较 用 REPZ CMPSW
10、,29,执行完REPZ CMPS后,根据ZF判断两串比较结果。 若ZF=1, 两串相等,此时: CX=0, 表明串中所有元素已比较完毕 SI、DI指向串尾的下一单元。 若ZF=0, 两串不等,此时: CX的值为剩下的未比较的元素个数。 SI、DI指向不相等元素的下一元素。,30,code SEGMENT 、 CLD ;DF=0,正向比较 MOV AX,SEG string1 ;源串首地址 DS:SI MOV DS,AX LEA SI,string1 MOV AX,SEG string2 ;目的串首地址 ES:DI MOV ES,AX LEA DI,string2 MOV CX, 8 ;串长度
11、CX REPZ CMPSB ;串比较 JZ equal ;利用ZF判断比较结果 不相等处理 JMP exit equal: 相等处理 exit: 、 code ENDS,31,code SEGMENT 、 CLD ;DF=0,正向比较 MOV AX,SEG string1 ;源串首地址 DS:SI MOV DS,AX LEA SI,string1 MOV AX,SEG string2 ;目的串首地址 ES:DI MOV ES,AX LEA DI,string2 MOV CX, 8 ;串长度 CX REPZ CMPSB JZ equal 不相等处理 JMP exit equal: 相等处理 ex
12、it: 、 code ENDS,32,33,执行完REPZ CMPSB后,此时: ZF=0, 两串不等 CX=3, 剩下的未比较的元素个数 SI、DI指向不相等元素的下一元素。,例,34,例3 用REPNZ SCAS 在串中找关键字。 编程步骤: 设置查找方向 设置串地址 将串的首地址(DF=0时),或末地址(DF=1时)放入ES、DI中。 设置关键字 将关键字放入AL (关键字为字节)或放入AX(关键字为字)。 设置串长度 将串的长度放入CX中。 查找字节用 REPNZ SCASB 查找字 用 REPNZ SCASW,35,执行完REPNZ SCAS后,根据ZF判断查找结果。 若 ZF=1,
13、 则串中有关键字,此时: CX的值为剩下的未搜索的元素个数, DI指向关键字元素的下一元素, 而关键字在( DI )-1的位置 若 ZF=0, 则串中无关键字,此时: CX=0,表明串中所有元素以搜索完毕 DI指向串尾的下一单元。,36,例 MOV AL, $ 、 REPNZ SCASB JZ found 未找到处理 JMP exit found: 找到处理 exit: 、,37,说明:,38,39,40,重复前缀中CX 减1操作,不影响标志。,41,几种操作复习,42,43,第四节 DOS操作系统简介 一、操作系统概念 二、DOS系统的组成 三、DOS系统启动过程 四、DOS系统的内存分配,
14、44,一、操作系统概念 计算机的工作原理: “存储程序”+“程序控制”,45,操作系统是: 是计算机最基本的系统软件, 控制和管理计算机硬件、软件资源, 方便用户充分、有效地利用计算机, 增强整个计算机的处理能力。,IBM PC/XT机上安装/运行的操作系统是DOS操作系统,46,了解DOS系统的目的: 了解计算机从裸机到可与用户进行交互系统的建立过程, 加深计算机工作原理的理解。 了解DOS系统下,内存的分配情况, 更好的学习汇编语言程序设计。,47,一、DOS系统的组成 1. 构成模块 2. 各模块功能,48,1. 由四个模块构成 DOS引导模块: 在系统盘的0面0道1扇区上 基本输入/输出模块BIOS : ROM BIOS (在内存的ROM区) IO.SYS (在系统盘上) 磁盘管理模块: MSDOS.SYS (在系统盘上) 命令处理模块: COMMAND.COM (在系统盘上),49,2. 各模块功能 DOS引导模块 完成将磁盘上三个系统文件装入内存。 ( 三个文件为 IO.SYS,MSDOS.SYS,COMMAND.COM ) 基本输入/输出模块BIOS 实现对输入/输出设备的管理。 内含0 - 1CH类型中断子程, 包括显示器、磁盘、键盘、打印机等外设驱动程序。,50,磁盘管理模块: 实现磁盘文件的管理。 内含20H27H类型中断子程