携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
考核大纲
一、学习目的和要求
微型计算机系统不能只有硬件,离开软件,微机只是一个空壳子。指令系统是软件开发最基本的要素。本章主要介绍886统汇语程设计的基本方法。通过本章的学习,学生要掌握8086式能,掌各类寻址方式以及8086汇编程序的基本结构,能读懂汇编语言程序,并能写基本的汇编语言程序。
课程内容
- 8086指令寻址方式。
- 8086 汇编语言格式。
- 8086 汇编语言伪指令。
- 8086汇编指令与汇编语言程序设计。
三、考核知识点与考核要求
- 8086指令寻址方式
- 领会:8086指数式转操作寻址方式。
- 8086汇编语言格式
- 识记:汇编语言语句格式、常量、标识符、表达式。领会:汇编语言源程序结构。
- 8086 伪指令与操作数运算符
- 简单应用:数据定义和存储器分配伪指令,表达式赋值伪指令,地址计数器和对准伪指令,程序开始与结束伪指令,简化段定义伪指令。
- 8086汇编指令与汇编语言程序设计 简单应用:人机交互程序和相关指令,顺序程序结构和相关指令,分支程序结构和相指令,循环程序结构和相关指令,子程序结构和相关指令。
四、本章重点、难点本章重点包括
- 8086指令寻址方式。
- 8086 汇编语言伪指令。
- 8086汇编指令与汇编语言程序设计。
- 常见的DOS 功能调用和 BIOS 功能调用。
- 本章难点包括:
- 8086 指令寻址方式。
- 8086汇编指令与汇编语言程序设计。
- 汇编指令与硬件信号之间的关系。
知识点汇总
第一节 8086指令寻址方式
一、数据寻址
- 立即寻址,操作数直接存放在指令中,紧跟在操作码的后面,作为指令的一部分放在代码段中。
- 寄存器寻址,速度最快。
- 存储器寻址
- I/O端口寻址
3.存储器寻址
有效地址EA:计算机执行程序时,根据指令给出的寻址方式,计算出操作数的地址,然后从该地址中取出操作数进行指定的操作,或者把操作数结果送入某一操作数地址中去。
直接寻址
直接寻址方式是在指令的操作码后直接给出操作数的有效地址EA,默认端是DS段
物理地址=(DS)*10h+EA
-
- MOV AX,[1234H]
-
- MOV BL,SS:[10H]
寄存器间接寻址
存储器操作数的有效地址放在一个基址寄存器(BX,BP)或变址寄存器(SI,DI)中,指令中放到是寄存器的编号,需要通过寄存器号找到有效地址的方式。
- BX SI DI 默认访问DS段
- BP 访问SS段
- MOV AX,[SI]
- MOV BL,[BP]
- ADD AX,ES:[BX]
基址寻址
以基址寄存器(BX.BP)的内容为基准地址,再加上指令中给出一个8位或16位的地址位移量而得存储器操作数的有效地址。
- BX作为基址寄存器默认访问DS段
- BP默认访问SS段
- MOV BL,10H[BP]
- ADD AX ES:[BX+200H]
- MOV AX,[BX+10H]
变址寻址
指令中给出一个位移量作为基准地址,再同变址寄存器的内容相加作为存储器操作数的有效地址。
- 变址寄存器只能选SI和DI 默认访问DS段。
- MOV AX,[SI+120H]
基址编制寻址
是基址和变址两种方式的组合
- MOV AX,10H[BP][SI]
- MOV AL,[BX+SI+10H]
4.I/O端口寻址
I/O端口直接寻址
- IN AL,20H
- OUT 60H,AX ;将AX中1个字送到60H和61H端口中
I/O端口间接寻址
- MOV DX,3FCH
- IN AL,DX
二、转移操作寻址
- 段内相对寻址
- 段内间接寻址
- 段间直接寻址
- 段间间接寻址
第二节 8086汇编语言基础
一、
汇编语言是一种介于机器语言与高级语言之间的,以符号方式表示的面向机器的计算机程序语言。
- 汇编语言程序特点:
- 采用分段结构
- 端内由若干汇编语句组成
- 使用起始标号
- 程序开始的语句
- 程序要正常退出到操作系统 MOV AX,4C00H INT 21H
第三节 8086汇编伪指令与操作数运算符
数据定义伪指令
- DB-字节
- DW-定义字
- DD-定义双子
- DF-定义6字
- DQ-定义8字
- DT-定义10字
第四节 8086汇编指令与汇编语言程序设计
一、程序设计概述
1.程序的设计原则
- 程序必须是正确和完整的
- 程序应该结构清晰、简介明了、注释详尽、易于阅读和维护
- 程序要尽量做到运算速度快、占用内存少,要在这两者之间取得一个较好的平衡
三、8086基本指令与顺序程序的编写
立即数不能直接赋值给段寄存器
- MOV AX,3000H
- MOV DS,AX
- CMP指令除了不把结果写到dest,其他一切都与SUB指令一样。
- XOR 亦或指令,相同为0,不同为1。
- 题:测试AL中的数是否为奇数
- TEST AL,01H
- JNZ NEXT ;ZF=0说明AL最低位是1,为奇数,跳转。
- JE/JZ 等于/为零转移 ZF=1
- JNE/JNZ 不等于/不为零转移 ZF=0
循环结构程序设计
循环程序的组成
- 初始化部分
- 工作部分
- 修改部分
- 控制部分
- 结束部分
- 现场保护和现场恢复:为了保证主程序在调用子程序后,主程序所用的寄存器的内容不被破坏,子程序在完成自己功能前,将要用到的寄存器的值先保存起来,这个称为现场保护。等子程序功能执行后,将这些寄存器的值恢复,这个过程称为现场恢复。
- 子程序嵌套:如果一个子程序调用另一个子程序
- 递归:如果子程序直接或间接的调用它自己。二者均受堆栈大小的限制
结尾
下一章 第四章 内部存储器及其接口