版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微处理器指令系统微机原理与接口技术·第02章·8086/8088指令体系全面解析Contents本章内容概览微处理器指令系统的核心知识模块与学习路径01微处理器内部结构与寄存器028086/8088寻址方式体系03数据传送与算术运算指令04位操作与控制转移指令05处理器控制指令与综合应用CHAPTER01微处理器内部结构与寄存器从8086/8088的功能架构到寄存器组织,建立指令执行的硬件基础认知MICROPROCESSORARCHITECTURE8086/8088的功能结构8086/8088采用BIU与EU双单元并行架构,通过6字节指令队列实现流水线预取,显著提升处理器吞吐效率。Intel8086微处理器芯片总线接口单元BIU总线通信:负责CPU与外部存储器及I/O端口的全部通信,包括取指令、读写数据和计算20位物理地址指令预取:内部设有6字节指令队列缓冲器,可在EU执行当前指令时预取后续指令,实现取指与执行的重叠并行分段寻址:包含4个16位段寄存器(CS/DS/SS/ES)和1个16位指令指针IP,管理存储器分段执行单元EU指令执行:从BIU指令队列中取出指令,经译码后执行算术逻辑运算、数据操作和控制转移核心运算:内含算术逻辑单元ALU、标志寄存器FLAGS和通用寄存器组,完成指令功能的核心部件总线请求:EU不直接与外部总线交互,需要访问内存或I/O时向BIU发出请求,由BIU代为完成16位通用寄存器8086通用寄存器组8086设有AX/BX/CX/DX四个16位通用数据寄存器,每个均可拆分为高低两个8位寄存器独立使用。它们既承担通用数据暂存功能,又在特定指令中具有约定用途,是汇编编程中最频繁操作的寄存器资源。AX累加器算术运算、I/O数据传送及中断调用的默认寄存器,乘法/除法指令隐含使用AX或DX:AXAccumulatorBX基址寄存器常用于存储器寻址中作为基址寄存器,也可作为通用数据暂存器使用BaseCX计数寄存器循环指令LOOP和移位指令的隐含计数器,字符串操作中也用作重复次数CounterDX数据寄存器乘除法中与AX配合存放32位结果或16位被除数的高位,间接I/O寻址中存放端口地址Data8位拆分AX→AH+AL·BX→BH+BL·CX→CH+CL·DX→DH+DL—适合ASCII码处理、单字节I/O操作及位掩码运算等场景CHAPTER02·MICROPROCESSOR指针、变址与段寄存器8086通过SP/BP/SI/DI四个指针变址寄存器实现灵活的存储器间接寻址,配合CS/DS/SS/ES四个段寄存器完成分段地址管理,标志寄存器FLAGS则为条件控制提供运算状态依据。指针与变址寄存器01SP(堆栈指针):始终指向当前栈顶偏移地址,PUSH/POP指令执行时自动递减/递增2,管理堆栈操作02BP(基址指针):默认与SS段配合,常用于子程序中访问堆栈传递的参数和局部变量,不破坏SP值03SI(源变址)与DI(目的变址):串操作指令中SI默认配DS指向源串、DI默认配ES指向目的串段寄存器与标志寄存器01段寄存器:CS/DS/SS/ES四个段寄存器各存放16位段基址,与16位偏移地址组合形成20位物理地址(段基址×16+偏移)02FLAGS标志寄存器:含6个状态标志(CF/PF/AF/ZF/SF/OF)和3个控制标志(TF/IF/DF),记录运算结果特征03标志位作用:状态标志反映运算结果特征,控制标志管理处理器运行模式,为条件跳转和程序流程控制提供依据MemorySegmentation8086存储器分段结构8086通过段基址×16+偏移地址的机制,用16位寄存器实现20位物理地址寻址(1MB空间)。存储器划分为代码段、数据段、堆栈段和附加段,各段独立管理、灵活重定位,是理解指令寻址的关键基础。计算机内存条DDR实物照片01物理地址=段基址×16+偏移地址,如DS=2000H、偏移=1000H时,物理地址=21000H,实现16位寄存器寻址1MB空间1MB寻址02代码段CS存放指令序列,由CS:IP指向执行位置;数据段DS存放变量与常量;堆栈段SS用于CALL/INT现场保护CS·DS·SS03附加段ES提供额外数据段支持,串操作指令中作为目标段使用;各段可重叠也可分离,最大各64KBES·64KB04分段管理核心优势是程序可重定位——只需修改段寄存器值即可迁移程序到内存其他位置,无需修改偏移地址可重定位CHAPTER028086/8088寻址方式体系立即数、寄存器与存储器三大类寻址方式的原理与应用场景寻址方式立即数寻址与寄存器寻址立即数寻址将操作数直接编码在指令中,适合赋初值等场景但只能做源操作数;寄存器寻址操作数位于CPU内部寄存器,访问速度最快且可做源或目的操作数,两者均不涉及存储器访问。汇编语言编程工作环境01立即数寻址01操作数直接包含在指令代码中,存放在代码段CS内,取指令时一并读入CPU,无需额外总线周期。02立即数只能作为源操作数,如MOVAX,2050H将常量送入AX,不可作为目的操作数。03支持8位和16位宽度,如MOVCL,0FH(8位)和MOVDX,1234H(16位),需与目标寄存器匹配。02寄存器寻址04操作数位于CPU内部寄存器,如MOVAX,BX将BX内容复制到AX,源和目的均可使用寄存器。05寄存器在CPU芯片内部,访问不需外部总线操作,执行速度在所有寻址方式中最快。06源和目的寄存器宽度须一致,MOVAX,BL为非法指令(16位与8位不匹配),汇编时报错。MEMORYADDRESSINGMODES直接寻址与寄存器间接寻址存储器寻址通过偏移地址在指定段中定位操作数。直接寻址在指令中写明偏移地址,适合访问固定变量;寄存器间接寻址将偏移地址存入BX/BP/SI/DI寄存器,可动态改变访问位置,适合数组遍历等场景。直接寻址01指令中直接包含操作数的16位偏移地址,如MOVAX,[2000H],默认在DS段中查找,物理地址=DS×16+2000H02支持段超越前缀修改默认段,如MOVAX,ES:[2000H]强制在ES段中寻址,增加灵活性03实际编程中常用变量名代替数字地址,如MOVAX,COUNT,汇编器自动将COUNT替换为其偏移地址寄存器间接寻址01偏移地址存放在BX、BP、SI或DI寄存器中,如MOVAX,[BX],BX的值即为偏移地址02BX/SI/DI默认配DS段,BP默认配SS段,可通过段超越前缀更改,如MOVAX,ES:[SI]03适合数组和表格的遍历操作,通过递增/递减寄存器值即可依次访问连续存储的多个数据元素AddressingModes基址、变址与基址变址寻址基址寻址适合访问结构体成员,变址寻址适合遍历数组,基址变址寻址可处理二维数组等复杂数据结构,三者构成8086最核心的存储器寻址能力。基址寻址偏移地址=BX/BP+位移量,如MOVAX,[BX+08H]。BX配DS、BP配SS,常用于结构体成员访问。BX/BP变址寻址偏移地址=SI/DI+位移量,如MOVAX,TABLE[SI]。默认配DS段,适合一维数组元素遍历。SI/DI基址变址寻址偏移地址=基址+变址+可选位移量,如[BX+SI+05H],BX为行基址、SI为列偏移。Base+Index合法组合限制基址只能是BX/BP,变址只能是SI/DI。两个基址或两个变址同时使用非法,如[BX+BP]。[BX+BP]✕段超越前缀所有方式均支持段超越,如ES:[BX+SI]强制使用ES段,满足跨段数据访问需求。ES:OverrideChapter02·Addressing寻址方式综合对比8086寻址方式按操作数位置分为立即数、寄存器和存储器三大类,其中存储器寻址又细分为7种具体方式。执行速度从快到慢依次为寄存器>立即数>存储器寻址,灵活度则相反,编程时需根据数据特征选择最合适的方式。8086寻址方式速查表寻址类型方式名称示例特点与应用立即数立即数寻址MOVAX,2050H操作数在指令中,仅做源操作数,赋初值寄存器寄存器寻址MOVAX,BX操作数在CPU内部,速度最快,可做源或目的存储器直接寻址MOVAX,[2000H]指令给出偏移地址,访问固定变量寄存器间接MOVAX,[BX]BX/BP/SI/DI存偏移,适合数组遍历基址寻址MOVAX,[BX+08H]基址+位移,适合结构体成员访问变址寻址MOVAX,[SI+10H]变址+位移,适合数组元素访问基址变址MOVAX,[BX+SI]基址+变址,适合二维数组相对基址变址MOVAX,[BX+SI+5]基址+变址+位移,最灵活8086共8种主要寻址方式,寄存器和立即数寻址速度快但不灵活,存储器寻址方式灵活但需额外总线周期Chapter03数据传送与算术运算指令通用传送、堆栈操作、标志操作及四则运算指令的详细解析Chapter02·指令系统通用数据传送指令MOV指令实现寄存器、存储器和立即数之间的数据传送,是使用最频繁的指令但受限于两个存储器操作数不可直传、段寄存器赋值有特殊规则。XCHG和XLAT分别提供数据交换和查表转换功能。大学计算机实验室·汇编语言编程教学场景01MOVdst,src—将src传送到dst,支持reg↔reg、reg↔mem、reg/mem←imm等组合,但mem→mem直传非法,需经寄存器中转02MOV段寄存器限制—可用MOVDS,AX将通用寄存器值送段寄存器,但不可直接送立即数到段寄存器03XCHGop1,op2—交换两个操作数内容,支持reg↔reg和reg↔mem,但不支持mem↔mem04XLAT查表转换—将DS:[BX+AL]处字节送入AL,常用于ASCII码映射等编码转换Chapter02·微处理器指令系统堆栈操作指令8086堆栈是位于SS段的后进先出结构,PUSH和POP以16位为单位操作,PUSH先SP-2再存数、POP先取数再SP+2。堆栈用于保护现场、传递参数和保存返回地址,是子程序设计和中断处理的核心机制。PUSH压栈将16位源操作数压入堆栈,SP先减2再存入数据,如PUSHAX将AX内容保存到栈顶SP−2POP弹栈从栈顶弹出16位数据到目的操作数,先取数据再SP加2,如POPBX将栈顶值恢复到BXSP+2LIFO原则PUSH和POP必须成对出现且顺序相反,否则导致栈平衡破坏和程序异常。嵌套调用时需严格遵循先进后出顺序,确保返回地址正确恢复配对标志保护PUSHF/POPF分别将标志寄存器FLAGS压栈和弹栈,常用于中断服务程序保护状态。中断响应时硬件自动压栈CS:IP和FLAGS,IRET指令负责恢复FLAGS操作数限制PUSH支持寄存器和存储器但不支持立即数,PUSH1234H在8086上非法。POP目的操作数不能是CS段寄存器,这是硬件设计的安全约束NOIMM微处理器指令系统·FLAGS&ADDRESS标志操作与地址传送指令标志操作指令直接控制FLAGS标志位,用于中断管理和串操作方向控制;地址传送指令LEA获取偏移地址,LDS/LES同时加载段地址和偏移地址。CLC/STC/CMC进位标志控制分别清除、置位、取反进位标志CF,常用于多精度运算前初始化CF或条件控制CFLEAREG,MEM有效地址加载将mem的有效偏移地址送入reg,如LEABX,ARRAY使BX=ARRAY的偏移值,等效于MOVBX,OFFSETARRAYOFFSETCLI/STI中断允许控制禁止/允许可屏蔽中断,在中断服务程序中防止中断嵌套,保护关键代码段的原子性IFLDSREG,MEM远指针加载DS从mem处连续取32位,低16位送入reg、高16位送入DS,用于加载远指针32-BITCLD/STD方向标志控制清除/置位方向标志DF,控制串操作指令的地址变化方向(DF=0递增,DF=1递减)DFLESREG,MEM远指针加载ES与LDS类似但高16位送入ES段寄存器,常用于跨段数据操作的指针初始化ESArithmeticInstructions加法与减法指令8086加减法指令体系包含基本加减(ADD/SUB)、带进位加减(ADC/SBB)、增减1(INC/DEC)、求补(NEG)和比较(CMP)六类。其中ADC/SBB支持多精度运算,CMP只设标志不存结果为条件分支提供依据。01ADDdst,src:dst←dst+src,影响全部状态标志;ADCdst,src:dst←dst+src+CF,用于多精度加法的后续高位运算ADC02SUBdst,src:dst←dst-src;SBBdst,src:dst←dst-src-CF,带借位减法用于多精度减法的高位部分SBB03INC/DEC:加1/减1操作,影响ZF/SF/OF/PF/AF但不影响CF,常用于循环计数器和地址指针调整CF不变04NEG:对操作数求补(取相反数),等效于0减去操作数,影响全部标志位,CF在结果非零时置10−x05CMPop1,op2:执行op1−op2但仅设置标志不保存结果,后续通过条件转移指令(JE/JA/JL等)判断大小关系JE/JAIntel处理器芯片·晶圆制造实拍INSTRUCTIONSET·ARITHMETIC乘法与除法指令8086乘除法指令使用隐含寄存器:8位乘法结果在AX、16位乘法结果在DX:AX;8位除法被除数在AX、16位除法被除数在DX:AX。除法溢出会触发0号中断,有符号运算前必须用CBW/CWD进行符号扩展。SECTION01乘法指令MUL/IMUL018位乘法:AL×src→AX,如MULCL将AL×CL的16位结果存入AX;IMUL对应有符号版本0216位乘法:AX×src→DX:AX,结果高16位在DX、低16位在AX,如MULCX产生32位结果03MUL对无符号数运算,IMUL对有符号数运算;CF和OF在结果高位非零时置1,表示有效数字超出了低位寄存器SECTION02除法指令DIV/IDIV018位除法:AX÷src→AL(商)+AH(余数),商超过FFH时触发0号除法错中断导致程序异常终止0216位除法:DX:AX÷src→AX(商)+DX(余数),被除数为32位,商超过FFFFH同样触发中断03CBW将AL符号扩展至AX、CWD将AX符号扩展至DX:AX,有符号除法(IDIV)前必须先执行符号扩展DECIMALADJUSTINSTRUCTIONS十进制调整指令十进制调整指令用于修正BCD码算术运算后的结果。压缩BCD码用DAA/DAS调整加减法结果,非压缩BCD码用AAA/AAS/AAM/AAD调整。使用模式为先做二进制运算再紧跟调整指令,确保结果为合法的十进制编码。DAA加后调整,紧跟ADD指令,将AL中的二进制加法结果修正为合法的压缩BCD码,如29H+18H=41H→47HPACKED·ADDDAS减后调整,紧跟SUB指令,将AL中的减法结果修正为压缩BCD码,处理借位时AF/CF的修正逻辑PACKED·SUBAAA/AAS非压缩BCD码加减调整,AL结果高4位清零,溢出时AH加1UNPACKED·±AAM乘后调整,将AL中的二进制乘积拆分为十位(AH)和个位(AL),如AL=47→AH=4,AL=7UNPACKED·MULAAD除前调整,将AX中的非压缩BCD被除数合并为二进制值,如AH=4,AL=7→AL=47,AH=0UNPACKED·DIVCHAPTER04位操作与控制转移指令逻辑运算、移位操作、程序跳转与子程序调用的指令详解INSTRUCTIONSET逻辑运算指令8086逻辑运算指令包含AND/OR/XOR/NOT/TEST五种,支持按位操作。AND用于位屏蔽、OR用于位置位、XOR用于清零和位翻转、TEST用于位检测。编程中XORreg,reg是最高效的寄存器清零方法。AND按位与常用于位屏蔽。ANDAL,0FH清除高4位保留低4位;ANDAL,0DFH将第5位清0。0FHOR按位或常用于位置位。ORAL,80H将最高位置1;ORAX,AX可快速检测AX是否为零。80HXOR按位异或XORAX,AX清零AX,比MOVAX,0多节省1字节;XORAL,0FFH翻转全部位。0FFHNOT按位取反NOTAL将各位0变1、1变0,不影响任何标志位,等价于与全1异或。FLAGSTEST位检测执行与运算但不保存结果只设标志。TESTAL,01H检测最低位,后续用JZ/JNZ分支。01HINSTRUCTIONSET·CH.02无条件转移与条件转移指令JMP指令实现无条件程序跳转,支持段内直接/间接和段间跳转三种模式。条件转移指令依据FLAGS标志位决定是否跳转,共有20余种条件判断方式,但跳转范围限制在-128~+127字节,超出需配合JMP扩展。无条件转移JMP01段内直接跳转:JMPLABEL,将目标偏移地址直接装入IP,如JMPLOOP_START跳到循环起始位置02段内间接跳转:JMP[BX]或JMPAX,从寄存器或存储器中取出新IP值,适合跳转表和动态分派03段间跳转:JMPFARPTRLABEL,同时更新CS和IP,可跳转到其他代码段中的目标地址条件转移指令01基于单标志:JE/JZ(ZF=1)、JNE/JNZ(ZF=0)、JC/JB(CF=1)、JS(SF=1)、JO(OF=1)等02无符号数比较:JA(大于)、JAE(≥)、JB(小于)、JBE(≤),基于CF和ZF组合判断03有符号数比较:JG(大于)、JGE(≥)、JL(小于)、JLE(≤),基于SF、OF和ZF组合判断04跳转范围限制:−128~+127字节(8位相对偏移),超出需反向条件跳转+JMP实现远距离分支PROCESSORCONTROL处理器控制类指令处理器控制指令用于管理CPU运行状态和系统资源。NOP用于延时和代码对齐,HLT让CPU进入低功耗等待状态,LOCK在多处理器环境中锁定总线确保原子操作,ESC实现与协处理器的协同工作。NOP空操作指令(90H),占1字节、耗1个时钟周期,用于代码填充对齐、延时微调和调试屏蔽90HHLT停机指令,CPU进入暂停低功耗状态,直到外部中断或DMA请求才恢复,常用于OS空闲任务HALTWAIT等待协处理器就绪,CPU反复检测TEST引脚状态,8087完成运算后才继续执行后续指令TESTPINLOCK锁定总线信号前缀,确保指令执行期间其他处理器或DMA不能访问内存,保证原子操作BUSLOCKESC转交指令,将操作码和存储器操作数交给外部协处理器(8087FPU)处理,实现浮点扩展8087FPUAssembly·指令综合综合应用示例:求数组最大值通过求数组最大值的编程实例,综合运用MOV、CMP、JG、LOOP等指令,展示初始化→循环比较→条件更新→结果存储的协作模式。01初始化阶段MOVBX,OFFSETARRAY设指针,MOVAX,[BX]取首数为当前最大值,MOVCX,COUNT-1设循环次数02循环比较阶段ADDBX,2移动指针,CMPAX,[BX]比较当前最大值与新元素,JGESKIP跳过更新03条件更新阶段JGE不满足时MOVAX,[BX]更新最大值,SKIP处LOOP继续下一轮直到CX=004结果存储阶段循环结束后AX即为最大值,MOVMAX,AX将结果存入内存变量,体现结构化编程思想大学计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国细胞治疗技术监管体系与临床试验进展分析报告
- 2026中国涡流泵行业客户忠诚度培养与品牌建设策略报告
- 合规风险智能评估与控制
- 污水检测考试题目与答案解析
- 门诊电子病历习题及参考答案展示
- 合同管理系统专项试题及答案展示
- 弱电智能化施工方案-信息引导、LED显示、建筑设备、建筑能效
- 上海市静安区名校2027届九年级化学第一学期期中调研模拟试题含解析
- 吉林省白城市名校2027届化学九上期末经典模拟试题含解析
- 广告流程标准
- 智能供配电毕业论文
- 色素性青光眼治疗及护理
- 基于核心素养的2027年高考英语一轮复习备考策略
- 《医学免疫学》人卫第9版教材
- 妇产科规培教学课件
- 《内河电子航道图工程技术标准》
- 羽绒服培训课件
- 肩关节脱位影像课件
- T-GDAEM 5-2025 水质 六溴环十二烷的测定 高效液相色谱-三重四极杆质谱法
- 病房改造及能力提升项目建设方案
- 完善职业卫生管理制度
评论
0/150
提交评论