PC硬件04章汇编语言基础:寻址方式.ppt

上传人:sh****n 文档编号:6398387 上传时间:2020-02-24 格式:PPT 页数:48 大小:812KB
返回 下载 相关 举报
PC硬件04章汇编语言基础:寻址方式.ppt_第1页
第1页 / 共48页
PC硬件04章汇编语言基础:寻址方式.ppt_第2页
第2页 / 共48页
PC硬件04章汇编语言基础:寻址方式.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
1 预备知识 2 CPU 寄存器 存储器 8086 8088CPU的结构 3 8086 8088CPU的结构 内存 外设I O DBABCB 数据总线DB地址总线AB控制总线CB 通用寄存器 指针与变址寄存器 段寄存器 标志寄存器 4 8086 8088CPU的结构 内存 外设I O DBABCB 数据总线DB地址总线AB控制总线CB 通用寄存器 指针与变址寄存器 段寄存器 取指 令 译码 取数 数据或地址 执行 标志寄存器 5 CPU执行程序的过程 从内存取指令 执行指令 从内存取指令 执行指令 从内存取指令 执行指令 传统CPU执行指令的过程 现代CPU执行指令的过程 6 8086 8088CPU的寄存器 8086 8088的寄存器分为4种类型 1 通用寄存器 2 指针和变址寄存器 3 段寄存器 4 标志寄存器 7 1 通用寄存器 8 2 指针与变址寄存器 9 3 段寄存器 10 4 标志寄存器 标志寄存器长度为16位 其中9个位有定义 溢出overflowFlag 方向directionFlag 中断interruptFlag 符号symbol negative positive 零zero 辅助进位AuxiliaryCarryFlag 奇偶parity 偶even 奇odd 进位carry TF陷阱 单步trap 11 CF CarryFlag 进位标志两数相加 最高位向前位的进位 或两数相减最高位向前位的借位举例 有进位CF 1 有借位CF 1 两数相加 两数相减 2 12 AF AuxiliaryCarryFlag辅助进位标志 半进位 两数相加 第3位向前位的进位 或两数相减第3位向前位的借位举例 000010010001100000010001 000000000000000111111111 两数相加 有辅助进位AF 1 有辅助借位AF 1 两数相减 2 13 PF ParityFlag 奇偶标志算术或逻辑运算结果的低8位中含有1的位数是偶数时 PF 1 是奇数时 PF 0举例 100001011010110010011101100101111000010110000100 AND 运算结果AL中有2个 1 偶性 结果为 PF 1 14 ZF ZeroFlag零标志计算处理结果为0 则ZF为1 举例 111111110000000100000000 进位1 相加结果为0 ZF 1 相加结果有进位 CF 1 15 SF SignFlag 符号标志操作结果的符号位 即最高位的状态 结果为正SF 0 为负SF 1举例 100001011010110010011101100101111000010110000100 AND 结果为负 SF 1 16 OF OverflowFlag 溢出标志算术操作 结果超过目标所能容纳的范围举例 01111110 126 00000011 3 10000001 127 进位到符号位 值被改变 溢出 CF 1 17 IFinterrupt中断允许标志 允许中断否 DFdirection方向标志 存取方向 TFtrap陷阱标志 单步标志 用于调试程序 标志位在汇编语言程序设计中非常重要 必须掌握好 18 中为英文全拼或简拼 为简化部分 单词中的大写部分为简写所取字符 标志名中文标志为1时标志为0时OF OverflowFlag 溢出标志ov OVerflow nv NotoVerflow DF DirectionFlag 方向dn DowN up UP IF InterruptFlag 中断ei EnableI t di DisableI t SF SignFlag 符号ng NeGativesign pl PLussign ZF ZeroFlag 零zr ZeRo nz NotZero AF AuxiliarycarryFlag 辅进位ac AuxiliaryCarry na NotAux PF ParityFlag 奇偶校验pe ParityEven po ParityOdd CF CarryFlag 进位cy CarrY nc NotCarry 19 debug中查看状态寄存器 debug中查看状态寄存器of 溢出 df 方向 if 中断 sf 符号 zf 零 af 辅助进位 pf 奇偶 cf 进位 为1的时候ov OVerflow dn DowN ei EnableInterrupt ng NeGtive zr ZeRo ac AuxiliaryCarry pe ParityEven cy CarrY 为0的时候nv NotoVerflow up UP di DIsableinterrupt pl PLus nz NotZero na NotAuxiliary po ParityOdd nc NotCarry 20 3 2 1存储器的分段结构 21 第四章汇编语言 一 寻址方式 8086CPU 80X86CPU 22 通用寄存器 8086 Accumulator累加器Base基址寄存器Count计数寄存器Data数据寄存器Stackpointer堆栈指示器Basepointer基址指示器Sourceindex源变址器Destinationindex目的变址器 23 通用寄存器 80486 8086 Accumulator累加器Base基址Count计数Data数据Stackpointer堆栈指示器Basepointer基址指示器Sourceindex源变址器Destinationindex目的变址器 24 通用寄存器 80486 8086 Accumulator累加器Base基址Count计数Data数据Stackpointer堆栈指示器Basepointer基址指示器Sourceindex源变址器Destinationindex目的变址器 指示器和变址寄存器访问内存必须指出要访问的内存单元地址 这些地址值会增加指令的长度 把地址存放在特定的寄存器中 则指令中只要给出这些寄存器的名称即可 它们是 变址寄存器指针寄存器SIDISPBP与DS联用与SS联用数据段寄存器堆栈段寄存器 数据段寻址 堆栈段寻址 25 8086是16位CPU内部寄存器和内部数据线 外部数据线均为16位地址线20位 可直接寻址1MB 220 1MB 如何使用16位寄存器生成20位地址呢 存储器分段 使用段寄存器CS DS SS ES存储段基址 将1MB空间分为若干段 每段64KB 216 64K 每段的起始地址值为1MB空间中任一个能被16整除的地址值 即每段起始地址值的低4位恒为0 二进制数 物理地址由二部分组成 段起始地址相对段起始地址的偏移量 段可以相互重叠 故存储器分段方案众多 存储器分段 段基址与内存单元的距离偏移地址 段起始地址 物理地址 段基址左移4位 偏移量 26 8086是16位CPU内部寄存器和内部数据线 外部数据线均为16位地址线20位 可直接寻址1MB 220 1MB 如何使用16位寄存器生成20位地址呢 将1MB空间分为若干段 每段64KB 216 64K 使用段寄存器CS DS SS ES存储段基址 存储器分段 27 3 2 2实际物理地址的产生 举例 CS 9482 IP 2350 实际地址为 1001010010000010001000110101000010010110101101110000 一个实际地址可以对应多个逻辑地址 CS 9482 IP 2350 物理地址 28 存储器分段 例如 某个段寄存器内容为C018H 即表示该段物理地址从C0180H开始 该段最后一个地址为 C0180H FFFFH D017FH 64KB 29 存储器分段 存储器分段从8086开始 使用段寄存器 CS 0000 DS 0000 SS 0000 ES 0000 代码段共64K字节 附加段共64K字节 堆栈段共64KB字节 数据段共64KB字节 重叠部分 存储器分段可以相互重叠 1MB 段末地址 CS 0ffffH 段末地址 ES 0ffffH 64KB 64KB 30 寻址方式 8086指令集 1 在指令中2 在寄存器中3 在存储器中4 I O端口操作数 立即数 寄存器操作数 存储器操作数 I O操作数 立即数寻址 寄存器寻址 存储器寻址 I O端口寻址 第1种寻址方式 movax 1234 第2种寻址方式 movbx ax 有7种寻址方式 第3 9种 有2种寻址方式 第10 11种 立即数 4个位置 4种操作数 11种寻址方式 寻找操作数的方式叫寻址方式 寻址方式越多 CPU的功能越强大 31 每段起始地址值的低4位恒为0 二进制数 物理地址由二部分组成 段起始地址相对段起始地址的偏移量 段可以相互重叠 故存储器分段方案众多 存储器分段 段基址与内存单元的距离偏移地址 物理地址 段基址左移4位 偏移量 32 寻址方式 8086指令集 操作数可能存放在4个位置 1 在指令中 立即数 立即数寻址 movax 1234 movax 1234 movbx 5bcfH 1 11种寻址方式的第1种 ax 1234ah 12al 34 bx 5bcfHbl cfHbh 5bH 立即数寻址 33 movbx ax 2 2 在寄存器中 寄存器操作数 寄存器寻址 movbx ax 11种寻址方式的第2种 movcx bx bx ax cx bx 寄存器寻址 34 moval 1000H 直接寻址 movax 1000H 3 xx 地址 内容 地址 内容 al 1000H al 1000H ah 1001H 段寄存器为DS 2000H 段寄存器为DS 4000H 若操作数不在DS段 须指明moval ES 1000H 直接寻址 moval ES 1000H movax ES 1000H 2 2 2 2 2 2 偏移地址 物理地址 DS 偏移地址 2000H 1001H 20000H 1001H 21001H 即DS左移4位加偏移地址 3456H 物理地址 35 moval 1000H 直接寻址 movax 1000H 3 xx 地址 内容 地址 内容 al 1000H al 1000H ah 1001H 段寄存器为DS 段寄存器为DS 段寄存器为DSDS xxxxHDS 1000HDS 1002H 若操作数不在DS段 须指明moval ES 1000H 直接寻址 moval ES 1000H movax ES 1000H 36 寄存器间接寻址 si di bx bp 使用的寄存器 基址寻址 bx bp 4 mov bp al bp用段寄存器SS 除BP外 均用DS mov bx al 段寄存器为DS 34 bp al 即 DS bx al 寄存器间接寻址 SS bp al 物理 10fffH 物理 21002H 37 5 变址寻址 si di mov di ax 段寄存器为DS movax 7864H movdi 1001H 64 78 DS di ax di 1001H ax 7864H 物理 11001H 若先执行 设 若操作数不在DS段 须指明moval ES 1000H 周四34节9 27至此 38 6 基址加变址寻址 bx bp si di mov bp di al 基址寄存器 mov bx si r sr mov bx si ax 变址寄存器 bx si bx di bp si bp di bx bp si di bp bx di si bp di al bp si al bx si 1 ah 16位数据传送 39 7 带位移量寄存器相对间接寻址 8 nnnn BX BP 例 mov100 bp ah bp 100 ah BX BP nnnn 例 mov bx 18 cx bx 18 cx BX BP nnnn例 mov bp 87 dl bp 87 dl 带位移基址寻址 有效地址 基地址 位移量 带位移变址寻址 有效地址 变地址 位移量 nnnn SI DI 例 mov200 di bl di 200 bl SI DI nnnn 例 mov si 11 ch si 11 ch SI DI nnnn例 mov di 26 dx di 26 dx 9 带位移基址加变址寻址 有效地址 基地址 变地址 位移量 nn BX BP SI DI 例 mov100 bx si cl bx si 100 cl BX BP SI DI nn 例 mov bx si 100 ch bx si 100 cl BX BP SI DI nn例 mov bx si 100 ch bx si 100 cl BX BP nnnn SI DI nnnn 三种格式功能相同 三种格式功能相同 40 字段0 字段n 字段n 1 字段2 字段1 基址寄存器 位移量 MOVAX BX 100H 变 不变 变 不变 7 带位移基址寻址 有效地址 基地址 位移量 用于查表数据结构寻址 100H BX 例 反之 100H固定不变 改变BX的值进行查表 亦可 41 位移量 数据阵列寻址 查表 单元0 单元n 单元n 1 单元2 单元1 变址寄存器 MOVAX SI 100H 不变 变 变 不变 8 带位移变址寻址 有效地址 变地址 位移量 SI 100H 编程中 变 与 不变 的内容可以灵活掌握 100H固定不变 改变SI的值进行查表 未尚不可 42 单元 0 0 单元 0 1 单元 0 n 位移量 二维数据寻址 基址寄存器 MOVAX BX SI 100H 单元 m n 变址寄存器 变 不变 变 9 带位移基址加变址寻址 有效地址 基地址 变地址 位移量 BX SI 100H 43 操作数可能存放在4个位置 1 在指令中 立即数 立即数寻址 第1种寻址方式2 在寄存器中 寄存器操作数 寄存器寻址 第2种寻址方式3 在存储器中 存储器操作数 存储器寻址 7种寻址方式 3 9 10 I O端口寻址 inal ax nn例 inal 77h al 77h outnn al ax例 out77h ax 77h ax 直接I O端口寻址 8位口 dx寄存器间接I O端口寻址 16位口 8位I O端口地址 inal ax dx例 inal dx al dx outdx al ax例 outdx al dx ax 16位I O端口地址 11 movdx 378H 共11种寻址方式 已学习了9种 4 I O端口操作数 I O操作数 I O端口寻址 2种寻址方式 10 11 还有2种 44 I O端口寻址 寄存器间接寻址 立即数 括号内是地址 基址R 源 变址R 8位端口地址 16位端口地址 寻址方式复习 偏移量 1 立即数寻址MOVAX 1234H2 寄存器寻址MOVAX BX3 直接寻址MOVAX 1234H 4 基址寻址MOVAX BX 5 变址寻址MOVAX SI 6 基址加变址寻址MOVAX BX SI 7 带位移基址寻址MOVAX BX 100H 8 带位移变址寻址MOVAX SI 100H 9 带位移基址加变址寻址MOVAX BX SI 100H 10 I O端口直接寻址 8位口 INAL 71HOUT70H AL11 DX寄存器I O端口间接寻址 16位口 INAL DXOUTDX AL 基址加变址R 45 作业4 指出每条指令的寻址方式及操作结果 1 MOVAX 44fdH2 MOVAX CX3 MOVAX 6657H 4 MOVAX BX 5 MOVAX SI 6 MOVAX BX SI 7 MOVAX BX 220H 8 MOVAX SI 340H 9 MOVAX BX SI 780H 10 INAL 40HOUT41H AL11 INAL DXOUTDX AL 46 授课结束 47 48 二 寻址方式 8086指令集 操作数可能存放在4个位置 1 在指令中 立即数 立即数寻址 movax 12342 在寄存器中 寄存器操作数 寄存器寻址 movbx ax3 在存储器中 存储器操作数 存储器寻址 7种寻址方式 3 9 4 I O端口操作数 I O操作数 I O端口寻址 2种寻址方式 10 11 movax 1234 Movbx ax Moval 1000H Mov si ah Mov bp al Mov di ax Mov bp di al Mov bp di ax Mov100 bp bh Mov200 di bl Mov 100 bx si ch 3 4 5 6 7 9 Mov100 bx si cl 8 I O端口操作数 I O端口寻址 直接寻址 8位口 outnn al axdx寄存器间接寻址 16位口 out dx al ax out77h al inal dx inal 77h outdx al 10 11 1 2 SS 存储器操作数存储器寻址 直接寻址 movax 1000H 寄存器间接寻址 si di bx bp 基址寻址 bx bp 变址寻址 si di 基址加变址寻址 bx bp si di mov bx si nn nnnn r sr寄存器相对寻址 带位移 相对基址寻址nnnn BX BP 相对变址寻址nn SI DI 相对基址加变址寻址nn BX BP SI DI DS 11种寻址方式 有效地址 基地址 变地址 位移量
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!