【学习课件】第四章汇编语言程序设计_第1页
【学习课件】第四章汇编语言程序设计_第2页
【学习课件】第四章汇编语言程序设计_第3页
【学习课件】第四章汇编语言程序设计_第4页
【学习课件】第四章汇编语言程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第四章汇编语言程序设计(1)《微机原理与接口技术》同步精品课件·8086微处理器编程基础Contents本章内容概览汇编语言程序设计核心知识体系与底层逻辑解析。01汇编语言基本概念02数据表示与数制转换038086寻址方式详解048086指令系统05伪指令与程序结构CHAPTER01汇编语言基本概念从机器语言到汇编语言的演进,理解面向机器的编程思想ASSEMBLY·CHAPTER01机器语言与汇编语言汇编语言是机器语言的符号化表示,通过助记符替代二进制操作码,大幅提升了程序的可读性。但汇编语言程序必须经过汇编程序(如MASM)翻译成机器代码后,计算机才能执行——这个翻译过程称为"汇编"。Intel8086微处理器芯片实物01机器语言:由0、1二进制代码组成,是计算机唯一能直接识别和执行的语言,但难以阅读和记忆02汇编语言:使用ADD、MOV、SUB等助记符表示操作码,用符号名表示地址和数据,显著提升可读性03汇编程序:如MASM.exe,负责将汇编语言源程序自动翻译为机器代码组成的目标程序04指令映射:汇编语言与机器指令一一对应,每条汇编指令经汇编后生成一个或几个字节的机器代码LANGUAGECOMPARISON汇编语言与高级语言的对比汇编语言面向机器硬件,具有最高执行效率但缺乏通用性;高级语言面向过程和算法,具有良好可移植性但无法直接操控硬件。两者在软件开发体系中各有不可替代的定位。汇编语言的特点直接操作CPU寄存器、内存和I/O端口,时间和空间效率最高每种微处理器有专用汇编,8086与ARM互不兼容应用于操作系统内核、设备驱动、嵌入式系统等场景高级语言的特点C、Java、Python等抽象硬件细节,专注算法与业务逻辑不依赖特定机器,同一份代码可在多种平台上运行语法丰富、库函数完善,适合开发复杂软件系统8086Assembly·ProgramStructure汇编语言程序实例:人机对话程序一个完整的8086汇编程序由堆栈段(STACK)、数据段(DATA)和代码段(CODE)三部分组成,通过DOS功能调用INT21H实现与用户的交互,展示了汇编程序的基本骨架和编程思想。STACK堆栈段分配100字节堆栈空间,为子程序调用和中断处理提供运行时数据存储区域,是程序运行的临时数据缓冲区,支持嵌套调用和参数传递机制。100字节DATA数据段定义用户输入缓冲区(最大30字符)、提示字符串prompt1和输出字符串prompt3,用于存储程序运行所需的常量数据和变量信息。30字符CODE代码段通过INT21H的09H号功能显示提示语,0AH号功能接收键盘输入,再拼接用户名输出问候,实现完整的人机交互流程控制。INT21HSTART程序入口设为FAR过程,通过PUSHDS和XORAX,AX建立标准程序返回DOS的框架,确保程序执行完毕后正确返回操作系统。FAR过程DEVELOPMENTWORKFLOW汇编语言程序开发流程汇编语言程序的开发是一个多阶段过程:编辑源程序→汇编→连接→执行→调试。每个阶段都有专门的工具软件支持,掌握完整工具链是进行汇编编程的前提。编辑阶段:使用文本编辑器编写.asm源程序文件,遵循汇编语言的语法格式和段定义规范汇编阶段:MASM汇编器将源程序翻译为.obj目标文件,同时生成.lst列表文件供检查,语法错误在此阶段暴露连接阶段:LINK连接器将一个或多个.obj文件及所需库文件组合为.exe可执行文件,解决模块间的地址引用调试阶段:使用DEBUG或CodeView等调试工具设置断点、单步执行、查看寄存器和内存,定位逻辑错误早期PC汇编开发环境—MASM/DEBUG/CRT显示器CHAPTER02数据表示与数制转换掌握二进制、十六进制、补码表示及BCD码等计算机数据基础NUMBERSYSTEMS常用数制及其转换方法汇编编程中频繁使用二进制和十六进制,掌握数制间的快速转换是基本功。二-十六进制转换最为便捷(4位一组),而二-十进制转换需要'除基取余'或'按权展开'运算。01二进制(B):计算机内部唯一使用的数制,由0和1组成,如10101111B,每位称为一个"比特"02十六进制(H):汇编程序中最常用格式,每4位二进制对应1位十六进制,10101111B=AFH03十进制(D):人类习惯使用的数制,汇编中可加D后缀或不加后缀表示,如175D或17504转换方法:十→二用"除2取余倒排法";二→十用"按权展开求和法"(如2⁷+2⁵+…)常用数制对照表(0~15)DBHDBH000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111FD=十进制·B=二进制·H=十六进制NUMBERSYSTEMS常用数制及其转换方法汇编编程中频繁使用二进制和十六进制,掌握数制间的快速转换是基本功。二-十六进制转换最为便捷(4位一组),而二-十进制转换需要"除基取余"或"按权展开"运算。01二进制(B):计算机内部唯一使用的数制,由0和1组成,如10101111B,每位称为一个"比特"02十六进制(H):汇编程序中最常用的书写格式,每4位二进制对应1位十六进制,10101111B=AFH03十进制(D):人类习惯使用的数制,汇编中可加D后缀或不加后缀表示,如175D或17504转换方法:十进制→二进制用"除2取余倒排法";二进制→十进制用"按权展开求和法"常用数制对照表(0~15)十进制二进制十六进制000000100011501015910019101010A111011B141110E151111F掌握0-15的三种数制对应关系,是进行快速二-十六进制转换的基础DATAREPRESENTATION有符号数的表示:原码、反码与补码计算机内部统一使用补码表示有符号数,补码将减法运算转化为加法运算,简化了CPU的硬件设计。原码最高位为符号位(0正1负),其余为数值位。原码表示直观易懂,但存在正负零问题。00000101B+5反码正数反码等于原码;负数符号位不变,数值位按位取反。反码解决了部分运算问题。11111010B-5补码正数补码等于原码;负数补码等于反码加1。补码是现代计算机的标准表示方法。FBH-5补码优势统一加减法电路设计,+127+1自动溢出为-128,范围对称且零值唯一。-128~+1278位EncodingSystemsBCD码与ASCII字符编码BCD码用4位二进制编码1位十进制数,适合精确十进制运算;ASCII码是计算机字符处理的标准编码,掌握常用字符的ASCII值汇编编程中字符串操作的基础。BCD码(二-十进制编码)01压缩BCD码:每字节存放2位十进制数,如59D存储为01011001B(59H),节省存储空间1Byte→2Digits02非压缩BCD码:每字节仅低4位存放1位十进制数,高4位为0,如59D存为两个字节05H和09H1Byte→1Digit038086提供DAA/DAS等十进制调整指令,可在BCD码加法/减法后自动修正结果为合法BCD格式DAA/DASASCII码(美国标准信息交换码)017位编码共128个字符:0-9对应30H-39H,A-Z对应41H-5AH,a-z对应61H-7AH7-bit·128Chars02控制字符:回车CR=0DH,换行LF=0AH,空格=20H,'$'=24H(DOS字符串结束标志)CR·LF·$03大小写转换规律:同一字母大小写ASCII值相差20H,如A(41H)与a(61H),便于编程中快速转换Δ=20HChapter038086寻址方式详解理解操作数的定位方式,掌握立即数、寄存器、直接、间接等多种寻址模式DataAddressing数据寻址方式(上):立即数、寄存器与直接寻址立即数寻址、寄存器寻址和直接寻址是8086最基础的三种数据寻址方式,分别对应操作数在指令代码中、CPU寄存器中和内存固定位置中三种情况,执行速度依次递减。立即数寻址操作数直接包含在指令中,如MOVAX,1234H,数值存放在代码段指令流中,只能作源操作数,不能作目的操作数。1234H寄存器寻址操作数位于CPU内部寄存器,如MOVAX,BX,不访问内存,执行速度最快,适用于高频运算和数据暂存。速度最快⚡直接寻址指令中给出操作数的16位偏移地址,如MOVAX,[2000H],物理地址由DS段寄存器左移4位后与偏移地址相加得到。物理地址=DS×16+Offset注意区分MOVAX,2000H(立即数,AX=2000H)与MOVAX,[2000H](直接寻址,AX=内存内容)。方括号表示取内存地址中的值。[]≠无括号ASSEMBLY·ADDRESSINGMODES数据寻址方式(下):间接、基址、变址与基址变址寄存器间接、基址、变址和基址变址寻址通过寄存器组合与位移量的灵活搭配,实现了对数组、结构体、二维表等复杂数据结构的高效访问,是汇编编程的核心技能。INDIRECT寄存器间接寻址用BX/SI/DI/BP内容作为偏移地址,如MOVAX,[BX],物理地址=DS×16+BX(BP默认用SS段)MOVAX,[BX]BASED/INDEXED寄存器相对寻址寄存器内容+位移量,如MOVAX,[BX+10H],适合访问结构体字段或数组元素MOVAX,[BX+10H]BASEDINDEXED基址变址寻址基址寄存器+变址寄存器,如MOVAX,[BX+SI],一个控制行一个控制列,常用于二维数组访问MOVAX,[BX+SI]RELATIVEBASEDINDEXED相对基址变址寻址基址+变址+位移量三者之和,如MOVAX,[BX+SI+20H],是最灵活的数据寻址方式MOVAX,[BX+SI+20H]CHAPTER04·ADDRESSINGMODES8086数据寻址方式汇总对比8086共提供8种数据寻址方式,从不访问内存的立即数/寄存器寻址到多组件组合的相对基址变址寻址,灵活度递增但访问开销也递增,编程时需根据数据特征选择最优方式。8086数据寻址方式速查表寻址方式指令示例操作数位置速度立即数寻址MOVAX,1234H指令代码中(代码段)快寄存器寻址MOVAX,BXCPU内部寄存器最快直接寻址MOVAX,[2000H]内存(DS:2000H)较慢寄存器间接MOVAX,[BX]内存(DS:BX)较慢寄存器相对MOVAX,[BX+10H]内存(DS:BX+10H)较慢基址变址MOVAX,[BX+SI]内存(DS:BX+SI)较慢相对基址变址MOVAX,[BX+SI+20H]内存(DS:BX+SI+20H)较慢串操作寻址MOVS[DI],[SI]内存(DS:SI/ES:DI,自动±1/±2)较慢寄存器寻址速度最快,涉及内存的寻址方式需计算物理地址,灵活度与开销成正比CHAPTER048086指令系统数据传送、算术运算、逻辑运算、串操作与控制转移五大类指令详解INSTRUCTIONSET数据传送类指令数据传送指令是汇编编程中使用频率最高的指令族,以MOV为核心实现寄存器、内存和立即数之间的数据搬移,PUSH/POP管理堆栈,XCHG交换数据——但均不影响标志位。MOVDST,SRC将源操作数传送到目的操作数,支持reg←reg、reg←mem、reg←imm、mem←reg、mem←imm五种组合方式。这是汇编中最基础、最常用的数据搬运指令,实现CPU内部及内存间的数据流动。5种寻址组合PUSHSRC/POPDST堆栈压入和弹出操作,SP自动±2,用于保护现场与传递参数,堆栈从高地址向低地址方向生长。子程序调用和中断处理时保存寄存器状态的必备机制。SP自动±2XCHGOPR1,OPR2交换两个操作数的内容,可在寄存器之间或寄存器与内存之间进行双向数据交换。无需借助第三方寄存器即可完成数据互换,常用于排序算法和寄存器值快速调换场景。双向交换限制规则不允许mem←mem直接传送;不允许立即数直接送段寄存器;CS不能作为目的操作数。这些限制源于8086架构的硬件设计,确保寻址的确定性和执行效率,编程时需特别注意规避。3条禁止规则ArithmeticInstructions算术运算指令:加法与减法加减法指令是算术运算的核心,ADD/SUB影响全部6个状态标志位(CF/ZF/SF/OF/PF/AF),而INC/DEC不影响CF。CMP执行减法但不存结果,专门为条件跳转提供判断依据。ADD/ADCDST←DST+SRC,影响全部标志位;ADC额外加CF,用于多字节加法DST←DST+SRC+CFSUB/SBB/NEGSUB:DST←DST−SRC;SBB额外减CF,用于多字节减法;NEG:OPR←0−OPRDST←DST−SRC−CFINC/DEC操作数加1/减1,影响ZF/SF/OF/PF/AF但不影响CF,常用于循环计数CF不受影响CMP执行OPR1−OPR2但不保存结果,仅设置标志位,为条件跳转提供判断依据JZ·JNZ·JG·JLARITHMETICINSTRUCTIONS算术运算指令:乘法与除法乘除法指令使用隐含寄存器存放操作数和结果(8位用AL/AX,16位用AX/DX:AX),有符号与无符号版本分开使用。除法溢出(商超出范围)将触发0号中断,编程时需提前防范。MULSRC(无符号乘法)8位运算时AL×SRC→AX;16位运算时AX×SRC→DX:AX。CF/OF标志位在结果高半部非零时置1,用于检测乘积是否超出低半部寄存器容量。AX/DX:AXIMULSRC(有符号乘法)操作过程与MUL相同,但运算时按补码规则处理操作数。适用于有符号整数相乘场景,结果同样存放于AX或DX:AX寄存器对中。SignedMultiplyDIVSRC(无符号除法)8位运算时AX÷SRC,商→AL余数→AH;16位运算时DX:AX÷SRC,商→AX余数→DX。余数符号与被除数相同,除数不能为零。Quotient+RemainderIDIVSRC(有符号除法)按补码进行除法运算,商向零取整。若商值超出目标寄存器表示范围(如8位商>127或<-128),则触发除法溢出中断INT0。INT0汇编语言程序设计逻辑运算与移位指令逻辑指令实现位级操作(屏蔽、设置、翻转、测试),是硬件控制和数据处理的利器;移位指令通过左移/右移实现乘除2的快速运算,算术移位与逻辑移位的区别在于是否保持符号位。逻辑运算指令01ANDDST,SRC—按位与,屏蔽特定位ANDAL,0FH→保留低4位02ORDST,SRC—按位或,设置特定位ORAL,80H→最高位置103XORDST,SRC—按位异或XORAX,AX→清零(比MOV更短)04NOT取反/TEST逻辑比较TEST执行AND但不保存,仅设标志位移位与循环移位指令01SHL/SAL(逻辑/算术左移):低位补0,每左移1位相当于乘以2,二者功能完全相同02SHR(逻辑右移)高位补0;SAR(算术右移)高位补符号位,保持有符号数正负性不变03ROL/ROR(循环左/右移):移出的位重新进入另一端;RCL/RCR通过CF构成9位/17位循环8086INSTRUCTIONSET串操作指令与重复前缀串操作指令通过SI/DI自动增减和REP前缀实现数据块的批量处理,一条REPMOVSB即可替代一个内存拷贝循环,是8086汇编中最具效率特色的指令族。MOVSB/MOVSW将DS:SI指向的字节/字传送到ES:DI指向的位置,SI和DI根据DF标志自动±1或±2。配合REP前缀可高效完成内存块复制。DS:SI→ES:DICMPSB/CMPSW比较DS:SI和ES:DI指向的字节/字,设置标志位;SCASB扫描AL/AX与ES:DI指向内容的差异。常用于字符串比较与搜索。FLAGSLODSB/STOSB从DS:SI取数到AL(LODS),或将AL存入ES:DI(STOS),常用于串的逐元素处理。LODS配合STOS可实现数据转换与填充。AL/AX重复前缀REPREP无条件重复CX次;REPE/REPZ在ZF=1时继续;REPNE/REPNZ在ZF=0时继续。实现条件循环控制,极大简化循环代码。CXASSEMBLY·CONTROLTRANSFER控制转移指令:跳转类JMP实现无条件跳转改变程序流向,条件跳转指令根据标志位状态决定分支走向。有符号数和无符号数使用不同的条件跳转指令集,混淆使用是初学者最常见的错误之一。无条件跳转JMP不依赖任何条件,直接改变指令执行顺序01段内直接跳转JMPNEARPTRLABEL,IP←IP+位移量,跳转范围-32768~+32767字节02段内间接跳转JMPWORDPTR[BX],IP←寄存器或内存字内容,适用于跳转表和动态分支03段间直接跳转JMPFARPTRLABEL,同时修改CS和IP,可跳转到代码段之外的任意位置JMP条件跳转(基于标志位)根据FLAGS寄存器状态决定是否跳转01通用条件跳转JZ/JE(ZF=1)、JNZ/JNE(ZF=0)、JC/JB(CF=1)、JNC/JAE(CF=0)02有符号数比较JG/JNLE(大于)、JL/JNGE(小于)、JGE/JNL(≥)、JLE/JNG(≤)03无符号数比较JA/JNBE(高于)、JB/JNAE(低于)、JAE/JNB(≥)、JBE/JNA(≤)JccAssemblyInstructions循环控制与子程序调用指令LOOP以CX为计数器实现简洁循环,CALL/RET通过堆栈保存和恢复返回地址实现子程序调用——这三条指令构成了汇编语言结构化编程的核心控制机制。LOOPLABELCX←CX-1,若CX≠0则跳转到LABEL,相当于DECCX+JNZ,用于已知次数的循环控制。该指令将计数器递减与条件判断合二为一,节省代码空间,提高执行效率,是汇编循环结构中最常用的指令形式。CX≠0CALLNEARPTR将当前IP压栈后跳转到过程入口,实现段内调用,IP←IP+16位位移量。调用完成后通过RET指令返回原位置继续执行,支持嵌套调用和递归调用,是模块化程序设计的基础。IPPushCALLFARPTR将CS和IP依次压栈后跳转,实现段间调用,可调用不同代码段中的子程序。该指令支持跨段程序模块的协同工作,适用于大型程序的内存分段管理,返回时需同时恢复CS和IP寄存器。CS+IPPushRET/RETN从堆栈弹出返回地址送入IP(段内)或同时弹出IP和CS(段间),N为可选堆栈清理字节数。RET指令自动识别调用类型恢复执行现场,RETN则额外清除栈中传递的参数,保持栈平衡。PopStackFLAGSREGISTERFLAGS寄存器与6个状态标志位8086的6个状态标志位记录运算结果的关键特征,是条件跳转的判断依据。核心区分:无符号数溢出看CF,有符号数溢出看OF——混淆这两者是导致程序逻辑错误的主要原因。8086状态标志位速查表标志位名称置1条件典型用途CF进位标志无符号运算产生进位/借位多字节加减法、无符号数比较ZF零标志运算结果为0判断相等/循环终止条件SF符号标志结果最高位为1(负数)有符号数正负判断OF溢出标志有符号运算结果超出范围有符号数溢出检测PF奇偶标志结果低8位中1的个数为偶数数据校验/通信协议AF辅助进位第3位向第4位产生进位BCD码十进制调整6个状态标志位从不同维度记录运算结果特征,是条件分支和溢出检测的硬件基础PROCESSORCONTROL处理机控制类指令处理机控制指令直接操作CPU标志位和运行状态,虽数量少但功能独特:标志操作为运算预设条件,中断控制管理系统响应,NOP和HLT控制执行节奏。标志位操作指令STC/CLC/CMC分别设置CF=1、清除CF=0、CF取反,常用于多精度运算前预设进位状态STD/CLD设置或清除方向标志DF,控制串操作地址增减方向(DF=0递增,DF=1递减)STI/CLI允许或禁止可屏蔽中断(INTR),中断服务程序入口处常用CLI防止嵌套中断处理器状态控制NOP空操作,占用1字节和3个时钟周期,用于精确延时、代码对齐或预留修改空间HLT停机指令,CPU进入等待状态直到外部中断或DMA请求到来,常用于程序正常结束时暂停CHAPTER05伪指令与程序结构掌握数据定义、段定义、过程定义等伪指令,构建规范的汇编程序框架Assembly·DataSegment数据定义伪指令数据定义伪指令(DB/DW/DD/DQ/DT)在内存中为程序分配和初始化数据空间,DUP操作符支持批量重复定义——它们构成了汇编程序中数据段的骨架。DB·定义字节每个数据占1字节(8位),是最基础的数据定义单位。常用于定义字符串、字符数组或单个字节变量。例如MSGDB'Hello',0DH,0AH,'$'可定义一个以回车换行符和结束符标记的完整字符串,便于DOS系统输出显示。1Byte8-bit存储单元DW·定义字每个数据占2字节(16位),采用小端存储模式——低字节存放在低地址,高字节存放在高地址。这是x86架构的标准存储方式。例如ARRDW1,2,3,4,5定义包含5个元素的16位整型数组,常用于地址指针和短整数运算。2Bytes16-bit小端存储DD·DQ·DT分别定义双字(4字节/32位)、四字(8字节/64位)和十字节(10字节/80位)数据类型。DD用于32位整数和单精度浮点数,DQ用于双精度浮点数和长整数,DT则用于扩展精度浮点运算,满足高精度科学计算需求。4/8/10多精度浮点支持DUP操作符实现数据的批量重复定义,大幅提升代码效率。DB100DUP('S')可快速填充100个字符'S'作为初始化数据;DB256DUP(?)则分配256字节未初始化的缓冲区空间,常用于预留堆栈或输入缓存区域,避免逐字节书写冗余代码。Repeat批量空间分配汇编语言·伪指令与运算符符号定义与数值返回运算符EQU和等号伪指令通过符号化常量提升程序可读性和可维护性;TYPE/LENGTH/SIZE运算符在汇编时自动计算变量属性,为编写通用的数组处理和内存操作子程序提供关键参数。PART01·符号定义伪指令EQU伪指令符号名EQU表达式,如PIEQU314,定义后不可重新赋值,适用于常量定义等号伪指令符号名=表达式,如I=0,可重复赋值(如I=I+1),适用于循环计数器LABEL伪指令为同一内存位置定义不同类型的变量名,如ARRAYBLABELBYTE,可用字节方式访问字数组PART02·数值返回运算符TYPE变量返回变量类型值(BYTE=1,WORD=2,DWORD=4),可用于自动适配MOVSB/MOVSW的选择LENGTH变量返回数组元素个数(仅对DUP定义有效),如ARRDW10DUP(?)的LENGTH为10SIZE变量返回变量占用总字节数(=TYPE×LENGTH),如ARR的SIZE为20(10×2字节)Chapter04·内存管理段定义伪指令与内存分段模型8086的分段内存模型要求程序划分为代码段、数据段和堆栈段,SEGMENT/ENDS定义段边界,ASSUME声明段寄存器与逻辑段的对应关系——但声明不等于赋值,实际初始化必须用MOV指令完成。01SEGMENT/ENDS段名SEGMENT[定位类型][组合类型]['类别']开始段定义,段名ENDS结束定义,成对出现划定段边界。定位类型决定段起始地址的对齐方式,组合类型控制多个模块的段合并规则。02ASSUME伪指令ASSUMECS:CODE,DS:DATA,SS:STACK,告知汇编器段寄存器与逻辑段的映射关系。该指令仅影响汇编阶段的地址计算,不产生任何机器码,运行前仍需手动初始化段寄存器。03段寄存器初始化ASSUME只是声明,DS和ES必须在代码中用MOV手动赋值;CS由ENDSTART自动设置,SS由系统设置。初始化顺序通常为:先设置DS/ES指向数据段,再执行后续指令访问内存操作数。04ORG伪指令设置当前位置计数器,如ORG0100H将后续代码放置在偏移100H处,常用于.COM程序。.COM文件要求代码、数据、堆栈共处于同一段内,ORG0100H为PSP预留256字节空间。ASSEMBLY·8086过程定义与完整程序框架PROC/ENDP定义可被CALL调用的子程序,NEAR用于段内调用、FAR用于跨段调用。一个规范的8086程序必须包含堆栈段、数据段和代码段三大部分,并正确初始化段寄存器和程序入口。PROC/ENDP过程定义过程名PROCNEAR/FAR定义子程序,过程名ENDP结束定义。NEAR仅保存IP,FAR保存CS:IP,实现跨段调用。NEAR/FAREND伪指令END[标号]标记源程序结束,标号指定程序入口点,通常为主程序第一条指令的标号,引导加载器定位执行起点。END[LABEL]标准程序框架STACK段→DATA段→CODE段:ASSUME声明→入口标号→段寄存器初始化→主逻辑→返回DOS。STACK→DATA→CODE返回DOS的方法FAR过程用RET返回(需预先PUSHDS和XORAX,AX/PUSHAX);或使用INT20H/MOVAH,4CHINT21H中断调用。INT21HProgramTemplate标准8086汇编程序框架模板规范的8086程序遵循"堆栈段→数据段→代码段"的三段式

温馨提示

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

评论

0/150

提交评论