微机原理与接口技术.ppt_第1页
微机原理与接口技术.ppt_第2页
微机原理与接口技术.ppt_第3页
微机原理与接口技术.ppt_第4页
微机原理与接口技术.ppt_第5页
已阅读5页,还剩182页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术 课程特点 综合性强 数字电路 汇编语言程序设计和可编程I O接口组成本课程的 三大基石 使用基本逻辑部件和可编程I O接口 组成计算机系统的各种功能电路 使用汇编语言设计控制或者驱动程序 实现电路的控制功能 三方面知识的有机结合 综合应用 实践 验 性强 本课程的理解程度 学习效果和学习兴致 与实验操作密切相关 理论知识指导实验操作 实验结果验证理论 通过实验寻找感觉 在深入探索的基础上 有所新认识 新发现 课程主要内容 以8088 6 微处理器为核心 介绍其工作原理和接口技术 内容有 CPU 总线控制器 时钟发生器 各种半导体存储器和一系列可编程I O接口 实验设备与方法 由PC系统和扩展I O接口实验系统组成 程序设计使用汇编语言 课程考核 由以下三个方面组成 实验考核 考核对待实验的态度 实验设计与调试的能力 实验报告的撰写水平等 出勤考核 期中考核 期末考核 第一章CPU的逻辑结构 一 8086的程序模型 程序模型CPU内部的寄存器阵列 通过汇编语言操作 程序模型图解 2 1通用寄存器 2 2段寄存器 二 内存结构图解 字节单元结构 字单元结构 数据存储格式 小端存储格式低字节存放低地址单元 高字节存放高地址单元 大端存储格式低字节存放高地址单元 高字节存放低地址单元 3A5DH的小端存储格式 3A5DH的大端存储格式 练习 将字单元结构转换成小端存储格式 内存分段结构 代码 CS 段 源程序存储区 数据 DS 段 操作数存储区 附加 ES 段 数据段扩展 堆栈 SS 段 数据后进先出的存储区 物理地址和逻辑地址 物理地址 每个内存单元唯一的地址 由CPU输出 逻辑地址 由段地址和偏移地址组成 编写源程序使用的地址 每个单元享有多个逻辑地址 段地址 段区20位起始物理地址的高16位部分 由CS DS ES SS之一提供 偏移地址 段内部单元偏离段起始单元的距离 由BX SI DI BP等提供 逻辑地址与物理地址的转换物理地址 段地址 10H 偏移地址 练习 将下列4个逻辑地址转换成物理地址 CS 1000H BX 1004H DS 208H SI 284H ES 3406H DI 23A4H SS 0A05H BP 10B4H 第二章汇编语言的寻址方式 计算机的 方言 与CPU逻辑结构密切相关 编程语句 各种操作功能的指令 例如 四则运算指令 逻辑运算指令等 汇编语言 指令中说明源 目操作数来源的符号 汇编语言的核心内容 寻址方式 指令的基本格式OPDST SRC 说明 OP 操作码 MOV ADD SUB DST 目地址 目操作数 SRC 源地址 源操作数 源操作数 来自寄存器 内存单元 立即数和I O端口之一 目操作数 来自寄存器 内存单元和I O端口之一 源 目操作数的字长相等 执行结果存入目地址 源操作数不变 源 目操作数不能同为内存单元或I O端口 目操作数不能是立即数 汇编语言的基本 军规 主要的寻址方式4 1立即寻址源操作数是8 16位直观数据 现金 MOVAL 100 MOVAH 64H MOVAX 1000H MOVBL 10011B MOVBH A MOVBX 1000 MOVCL 2 MOVCH 2 MOVCX 2 指出以下指令的错误MOVBL 256 MOVBH 100H MOVBX 65536 MOVCL 129 MOVCH 128 MOV100H CX 4 2寄存器寻址源或目操作数来自8 16位寄存器 MOVAL DL ADDAH CH SUBAX BX SUBSI BX ADDBP AX ANDBX DI ORCX SP MOVDS DX MOVBX ES 以下指令错误 MOVSI BL ADDBH AX SUBDX CH ANDCX IP 4 3寄存器间址源或者目操作数来自内存单元 指定 BX SI DI BP提供偏移地址 CS DS ES SS提供段地址 间址单元汇编符号 MEM BX BP SI DI 其他非法 例1 阅读下列指令 图解执行结果 MOVAX 1020H MOVDS AX MOVBX AX MOV BX AH MOV BX 1 AL 例2 图解下列指令执行结果 MOVCX 1ABCH MOVES CX MOVSI 1020H MOVES SI CL MOVES SI 1 CH 段名前缀 例3 图解下列指令执行结果 MOVCX 1ABCH MOVES CX MOVBP 1020H MOV BP CL MOV BP 1 CH 省略段名前缀 寄存器间址单元的段默认 默认DS段 默认ES段 MOVES BP DL MOV BP AL 默认SS段 AX 练习 阅读指令 指出内存单元的段属性 4 4直接寻址源或者目操作数来自内存单元 指令直接给出偏移地址 CS DS ES SS提供段地址 例 设DS 100H ES 200H CS 300H 图解执行结果 MOVAX 2 MOVES 100H AH MOV 101H AL MOVCS 200H 129 小端存储 4 5I O端口寻址 输入 输出指令 OUT40H AL INAL 40H 4 5 1直接寻址只能使用8位地址 寻址I O端口 OUT64 AL INAL 64 比较前后两组指令之区别 错误的直接寻址 OUT100H AL INAL 100H OUT256 AX INAX 256 4 5 2I O端口间接寻址由DX指定I O端口 MOVDX 100H 端口地址OUTDX AL 输出数据INAL DX 输入数据 MOVDX 20H OUTDX AX 16位I O端口INAX DX 例1 指出端口字长和寻址方式 OUTDX AL INAL DX OUT20H AL INAL 20H OUTDX AX INAX DX OUT100 AX INAX 100 例2 指出端口寻址方式和字长 例3 指出下列指令的错误 OUTDX AH INAH DX OUT100H AL INAX CX OUTDX BL 例4 图解执行结果 MOVAL 15 OUT2 AL INAL 2 MOVAH AL MOVDS AX MOV 2 AX 例5 比较下列指令 MOVDX AL OUTDX AL INAX 256 MOVAX 256 INAL DX MOVAL DX MOVDX AX OUTDX AX 8086指令系统 编程语句集合 一 数据传送类指令 通用寄存器赋值MOVAL 100 MOVCH 64H MOVAX 1000H MOVBL 10010011B MOVBH A MOVBX 1000 MOVCL 2 MOVCH 125 MOVCX 1000 错误的赋值 MOVBL 256 MOVCH 129 MOVDX 65536 MOVDS 1290H MOVES 1280H 军规 段寄存器不能用立即数赋值 段寄存器赋值 令DS 100HMOVAX 100H MOVDS AX 令ES 1000HMOVCX 1000H MOVES CX 令SS 2100HMOVBX 2100H MOVSS BX 令CS 4000HMOVSI 4000H MOVCS SI 军规 程序员不能赋值CS 由系统程序赋值 小结 段寄存器不接受立即数 段寄存器接受寄存器赋值 CS不能软件赋值 内存单元赋值 写内存 3 1使用寄存器赋值MOV BX AX MOV BP DX MOVES DI CL MOVCS 100H CH 分析内存单元字长 逻辑和物理地址 3 2使用立即数赋值MOV BX 100H MOVES SI 256 MOV SI 129 MOVCS DI 128 分析内存单元字长 逻辑和物理地址 具有二义性的立即数赋值 MOV BX 10H MOVES SI 255 MOV SI 2 MOVCS DI 2 如何解决二义性 使用说明符定义单元字长 MOVBytePTR BX 10H MOVWordPTRES SI 255 MOVWordPTR SI 2 MOVBytePTRCS DI 2 3 3读内存数据MOVAL BX MOVBX ES SI MOVCH BP MOVDX CS DI MOVDL 100H 分析内存单元字长 逻辑和物理地址 I O端口操作 4 1存取8位I O端口OUTDX AL INAL DX OUT20H AL INAL 20H 4 2存取16位I O端口OUTDX AX INAX DX OUT20H AX INAX 20H 编写指令序列 完成下列操作 实验素材 AX与BX交换 20H端口与BH交换 BX 与20H端口交换 16位字长 DI 与 SI 交换 8位字长 SI 与ES BX 交换 16位字长 DS与ES交换 两个16位端口交换 地址20H和30H 两个8位端口交换 地址200H和300H 堆栈与堆栈存取 5 1堆栈 在内存开设 后进先出 以字 16位 为单位存取 SS提供段地址 SP提供偏移地址 SP当前值指示当前栈底或者栈顶单元 正确的入栈操作 PUSHAX PUSH BX PUSHES SI PUSHCS 错误的入栈操作 PUSHAH PUSHBL PUSH1000PUSH100H 正确的出栈操作 POPAX POP BX POPES SI POPDS 错误的出栈操作 POPAH POPBL POPCSPOP100H 例1 完成DS与ES交换 解 应用堆栈存取实现PUSHDS PUSHES POPDS POPES 数据交换格式 XCHGDST SRC 不支持段寄存器 不支持立即数 支持8 16位数据交换 正确的数据交换 XCHGAX CX XCHG BX DX XCHGES SI DLXCHGDH CS DI 错误的数据交换 XCHGAX DS XCHGBH CX XCHGES SI 100H XCHG BX CS DI 二 算术运算类指令 加法指令格式1 ADDDST SRC 功能 DST DST SRC说明 执行后 设置ZF SF CF和OF标志值 ZF 0 运算结果不等于0 ZF 1 运算结果等于0 SF 0 运算结果 0 SF 1 运算结果 0 CF 0 运算结果无进 借位 CF 1 运算结果产生进 借位 OF 0 运算结果未溢出 OF 1 运算结果溢出 PF 0 运算结果中含奇数个1 PF 1 运算结果含偶数个1 AF 0 运算结果D3位无进 借位 AF 1 运算结果D3位产生进 借位 正确的加法运算 ADDAX CX ADD BX DH ADDES SI 1000 ADDDS CS 错误的加法运算 ADDAX CL ADD100H DX ADDES SI 100 ADDCS DS 例1 设AL 89H 分析加法运算结果 ADDAL 78H 分析 执行后AL 01H 标志位取值如下 CF 1 产生进位ZF 0 结果非0SF 0 结果非负OF 0 结果未溢出 提问 序数运算的结果 整数运算的结果 例2 设AL 89H 分析加法运算结果 ADDAL 87H 分析 执行后AL 10H 标志位取值如下 CF 1 产生进位ZF 0 结果非0SF 0 结果非负OF 0 结果溢出 提问 序数运算的结果 整数运算的结果 整数相加 溢出判断 异号数相加 不溢出 同号数相加 和改变符号则溢出 格式2 ADCDST SRC 功能 DST DST SRC Cy说明 与ADD相同 例3 AXBX AXBX SIDI 解 ADDBX DI ADCAX SI 例4 89FDCBH 9652DBH 分析运算结果 解 MOVBX 0FDCBH ADDBX 52DBH MOVAL 89H ADCAL 96H 格式3 INCDST 功能 DST DST 1说明 不影响CF标志 例5 7FH 1 分析运算结果 解1 MOVBX 7FH INCBX 未溢出 解2 MOVBH 7FH INCBH 溢出 减法指令格式1 SUBDST SRC 功能 DST DST SRC说明 执行后 设置ZF SF CF和OF标志值 例1 设AL 89H 分析相减结果 SUBAL 78H 分析 执行后AL 11H 标志位取值如下 CF 0 无借位ZF 0 结果非0SF 0 结果非负OF 1 结果溢出 整数相减 溢出判断 同号数相减 异号数相加 不溢出 异号数相减 同号数相加 差与被减数同号 无溢出 否则溢出 证明 设X 0 Y 0 当X Y 0 未溢出 当X Y 0 溢出 设X 0 Y 0 当X Y 0 溢出 当X Y 0 未溢出 格式2 SBBDST SRC 功能 DST DST SRC Cy说明 与SUB相同 格式3 DECDST 功能 DST DST 1说明 不影响CF 格式4 CMPDST SRC 功能 DST SRC说明 执行后 源目不变 标志与SUB相同 格式5 NEGDST 功能 DST 0 DST说明 与SUB相同 例2 7FH与89H 比较结果 解 MOVBL 7FH CMPBL 89H CF 1 序数目 源ZF 0 源目不等SF 1 结果为负OF 1 溢出 整数比较 DST SRCOFSFZF结果000010100110001 例7 数据8FH求补 解 MOVBL 8FH NEGBL 结果 BL 71H 乘法指令3 1序数相乘格式 MULSRC 功能 AX AL SRC 8 DXAX AX SRC 16 说明 执行后 设置CF OF标志值 ZF和SF随机值 正确的序数相乘 MULCX MULDH MULES MULSI 指出乘法指令的错误 并纠正之 MUL BX MUL100 MULES SI MUL 100H 例1 序数10 20 分析相乘结果 解 MOVBL 10 MOVAL 20 MULBL 结果 AH 0 AL 0C8H BL 0AHCF OF 0 高一半乘积等于0 SF 1 0和ZF 1 0 随机 例2 序数16 16 分析相乘结果 解 MOVBL 16 MOVAL 16 MULBL 结果 AH 1 AL 0 BL 10HCF OF 1 高一半乘积不等0 SF 1 0和ZF 1 0 随机 3 2整数相乘格式 IMULSRC 功能 AX AL SRC 8 DXAX AX SRC 16 说明 执行后 设置CF OF标志值 ZF和SF随机值 例3 整数 2 2 分析相乘结果 解 MOVBL 2 MOVAL 2 IMULBL 结果 AH 0FFH AL 0FCH BL 0FEHCF OF 0 高一半是低一半的符号扩展 SF 1 0和ZF 1 0 随机 例4 整数 16 16 分析相乘结果 解 MOVBL 16 MOVAL 16 IMULBL 结果 AH 0FFH AL 0 BL 0F0HCF OF 1 高一半非低一半的符号扩展 SF 1 0和ZF 1 0 随机 除法指令4 1序数相除格式 DIVSRC 功能 AHAL AX SRC 8位 AL 商 AH 余数 DXAX DXAX SRC 16位 AX 商 DX 余数 执行后 所有标志取随机值 指出除法指令的错误 并纠正之 MUL BX MUL100 MULES SI MUL 100H 例1 AX 100 BL 12 分析相除结果 解 DIVBL 结果 AH 4 余 AL 8 商 CF OF SF和ZF取随机值 4 2整数相除格式 IDIVSRC 功能 用于符号数除法运算 4 3整数字长扩展指令 字节扩展成字格式 CBW convertbytetoword 功能 把AL符号位扩展到AH 形成AX AL7 0 AH 00HAL7 1 AH 0FFH 字扩展成双字格式 CWD convertwordtodoubleword 功能 把AX符号位扩展到DX 形成DXAX AX15 0 DX 0000HAX15 1 DX 0FFFFH 例2 AL 2 BL 2 分析相除结果 解 CBW AL扩展成AXIDIVBL 结果 AH 0 余 AL 0FFH 商 BL 02HCF OF SF和ZF取随机值 例3 整数四则运算 W X Y Z 540 X变量X等为16位存储单元 定义如下 XEQUWordPTR 100H YEQUWordPTR 102H 解 顺序结构源程序如下 MOVAX X IMULY DXAXMOVBX AX 转存MOVCX DX CXBXMOVAX Z CWD Z扩展成DXAX ADDBX AX ADCCX DX SUBBX 540 SBBCX 0 减去借位MOVAX W CWD W扩展成DXAX SUBAX BX SBBDX CX IDIVX JMP 到此结束 压缩BCD码调整指令 压缩BCD码一个字节表示两位十进制数 取值0 99 例 45H 89H 36H 99H 5 1加法调整格式 DAA 说明 紧跟ADD C 之后执行 调整压缩BCD码相加结果 调整原理如下 当AL3 0 9或AF 1时 执行AL AL 6 AF 1 当AL7 4 9或CF 1时 执行AL AL 60H CF 1 执行后 OF随机 其他受影响 例1 55 38 分析相加结果 解1 MOVAL 55ADDAL 38 结果 AL 5DH 93 CF 0 OF 0 SF 0 ZF 0 AF 0 解2 MOVAL 55HADDAL 38H DAA 结果 AL 93H 93 CF 0 OF随机 SF 1 ZF 0 AF 1 例2 5538 3855 分析相加结果 解1 以下加法可否 MOVAX 5538HADDAX 3855H DAA 解2 MOVAL 38H 低字节ADDAL 55H DAA MOVAH AL 转存MOVAL 55H 高字节ADCAL 38H DAA XCHGAH AL 高低字节交换 5 2减法调整格式 DAS自学 三 逻辑运算类指令 与运算 ANDDST SRC 功能 DST DST SRC执行后 CF OF 0 ZF SF和PF随结果确定 PF 0 DST含奇数个1 PF 1 DST含偶数个1 Parity N 1 位奇校验 N为DST字长 或运算 ORDST SRC 功能 DST DST SRC 异或运算 XORDST SRC 功能 DST DST SRC 非运算 NOTDST 功能 DST DST 测试 TESTDST SRC 功能 DST SRC 例1 58H 69H 分析运算结果 解 MOVAL 58HANDAL 69H 结果 AL 48HCF OF 0 SF 0 ZF 0 PF 1 例2 AL7 AL6置1 AL1 AL0清0 AL5 AL2求反 解 ORAL 11000000B ANDAL 11111100B XORAL 00111100B 例3 如果AL 0 转入ZERO处执行 解1 TESTAL 0FFH 不改变AL 设置ZF值 JZZERO 解2 CMPAL 0 不改变AL 设置ZF值 JEZERO 例4 如果AL含偶数个1 转入EVEN处执行 解 TESTAL 0FFH 不改变AL 设置PF值 JPEVEN 例5 如果AX BX 转入EQUAL处执行 解1 XORAX BX 设置ZF值 JZEQUAL 解2 CMPAX BX 设置ZF值 JEEQUAL 四 移位和循环类指令 逻辑左移格式1 SHLDST 1 格式2 SHLDST CL CL 2执行后 CF OF ZF SF和PF随结果确定 逻辑右移SHR 算术左移SAL功能与SHL相同 算术右移SAR 符号位不变 左循环ROL 右循环ROR 串CF左循环RCL 串CF右循环RCR 例1 设AL BL 100 分析下列执行结果 解 SHLAL 1 SHRBL 1 结果 AL 0C8H 200 BL 32H 50 结论 自行归纳 例2 设AL BL 100 分析下列执行结果 解 SALAL 1 SARBL 1 结果 AL 38H OF 1 溢出 BL 0CEH 50 OF 0 正确 结论 自行归纳 五 转移类指令 无条件转移格式1 JMPShortLabel 2字节功能 IP IP当前值 位移量 8 相对寻址转移范围 128 127字节格式2 JMPNearPTRLabel 3字节功能 IP IP当前值 位移量 16 转移范围 32768 32767字节 单标志条件转移指令格式1 JCLabel 进 借位 2字节功能 当CF 1 IP IP当前值 位移量 8 否则 顺序执行 格式2 JNCLabel 无进 借位功能 当CF 0 IP IP当前值 位移量 8 否则 顺序执行 格式3 JZ JELabel 结果为0 相等 功能 当ZF 1 IP IP当前值 位移量 8 否则 顺序执行 格式4 JNZ JNELabel 结果非0 不等 功能 当ZF 0 IP IP当前值 位移量 8 否则 顺序执行 格式5 JSLabel 结果为负功能 当SF 1 IP IP当前值 位移量 8 否则 顺序执行 格式6 JNSLabel 结果非负功能 当SF 0 IP IP当前值 位移量 8 否则 顺序执行 格式7 JOLabel 结果溢出功能 当OF 1 IP IP当前值 位移量 8 否则 顺序执行 格式8 JNOLabel 结果未溢出功能 当OF 0 IP IP当前值 位移量 8 否则 顺序执行 格式9 JPLabel 结果含偶数个1功能 当PF 1 IP IP当前值 位移量 8 否则 顺序执行 格式10 JNPLabel 结果含奇数个1功能 当PF 0 IP IP当前值 位移量 8 否则 顺序执行 两个序数比较 条件转移指令格式1 JB JNAELabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 单一条件 CF 1即 JB JNAE JC 格式2 JBE JNALabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 复合条件 CF 1 ZF 0或者CF 1 ZF 0 即 CF ZF 1 格式3 JA JNBELabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 复合条件 CF 0 ZF 0即 CF ZF 0 格式4 JAE JNBLabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 单一条件 CF 0 即 JAE JNB JNC 例1 比较序数AX与BX 如果AX BX 转入Zero执行 如果AX BX 转入Above执行 否则 转入Here执行 解 CMPAX BX JEZero JAAbove JMPHere 两个整数比较 条件转移指令测试OF SF ZF复合条件 格式1 JL JNGELabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 整数比较 DST SRCOFSFZF结果000DST SRC010DST SRC100DST SRC110DST SRC001DST SRC 格式2 JLE JNGLabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 格式3 JG JNLELabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 格式4 JGE JNLLabel 功能 当DST SRC IP IP当前值 位移量 8 否则 顺序执行 例2 比较整数AX与BX 如果AX BX 转入Zero执行 如果AX BX 转入Large执行 否则 转入Here执行 解 CMPAX BX JEZero JGLarge JMPHere 例3 比较AX与BX 如果AX BX BX置换AX 否则 转入Equal执行 解 CMPAX BX JZEqual MOVAX BX 六 常用伪指令CPU不认识不执行 由汇编程序解读执行 程序区 数据区定位格式 ORG 数值表达式 功能 程序 数据自 数值表达式 确定的偏移地址开始存储 例1 在程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论