好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

一章指令系统.ppt

111页
  • 卖家[上传人]:壹****1
  • 文档编号:588123580
  • 上传时间:2024-09-07
  • 文档格式:PPT
  • 文档大小:381.02KB
  • / 111 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第5章章指令系统计算机教学实验中心计算机教学实验中心第二部分第二部分1 三、逻辑运算和移位类逻辑运算逻辑运算移位操作移位操作与与或或非非异或异或非循环移位非循环移位循环移位循环移位逻辑移位逻辑移位算术移位算术移位不带进位位的移位不带进位位的移位带进位位的移位带进位位的移位2 1. 逻辑运算n逻辑运算指令对操作数的要求大多与逻辑运算指令对操作数的要求大多与MOV指令指令相同非非”运算指令要求操作数不能是立即运算指令要求操作数不能是立即数;数;n除除“非非”运算指令外,其余指令的执行都会使运算指令外,其余指令的执行都会使标志位标志位OF=CF=03 “与”指令n格式:格式: AND OPRD1,,OPRD2n操作:操作: 两操作数按位相两操作数按位相“与与”,结果送目标,结果送目标地地 址址4 “与”指令的应用n实现两操作数相与的运算;实现两操作数相与的运算;n使目标操作数的某些位不变,某些位清零;使目标操作数的某些位不变,某些位清零;n在操作数不变的情况下使在操作数不变的情况下使CF和和OF清零5 “与”指令的应用nAND BL,,[BX]nAND AL,,0FHnAND AX,,AX6 “或”运算指令n格式:格式: OR OPRD1,,OPRD2n操作:操作: 两操作数按位相两操作数按位相“或或”,结果送目标,结果送目标 地址地址7 “或”运算指令的应用n实现两操作数相实现两操作数相“或或”的运算;的运算;n使某些位不变,某些位置使某些位不变,某些位置“1”n在不改变操作数的情况下使在不改变操作数的情况下使OF=CF=08 应用程序例OR AX,,[DI]OR CL,,0FHOR AX,,AX OR AL,,AL JPE GOON OR AL,,80H GOON::….偶校验转移偶校验转移((PF=1))将一个二将一个二进制数进制数9变变为字符为字符‘9’??9 “非”运算指令n格式:格式:NOT OPRDNOT OPRDn操作:操作数按位取反再送回原地址操作:操作数按位取反再送回原地址n指令中的操作数不能是立即数指令中的操作数不能是立即数n指令的执行对标志位无影响指令的执行对标志位无影响n例:例:NOT BYTE PTR[BX]NOT BYTE PTR[BX]10 “异或”运算指令n格式:格式: XOR OPRD1,,OPRD2n操作:操作: 两操作数相两操作数相“异或异或”,结果送目标,结果送目标 地址地址n两操作数自身相异或,结果两操作数自身相异或,结果 XOR AX,,AX11 “测试”指令n格式:格式: TEST OPRD1,,OPRD2n操作:操作: 执行执行“与与”运算,但运算的结果不运算,但运算的结果不 送回目标地址。

      送回目标地址n应用:应用: 常用于测试某些位的状态常用于测试某些位的状态12 “测试”指令例n从地址为从地址为38F0H的端口中读入一个字节数,的端口中读入一个字节数,如果该数的如果该数的bit1位为位为1,则可从,则可从38FEH端口端口将将DATA为首地址的一个字输出,否则就不为首地址的一个字输出,否则就不能进行数据传送能进行数据传送 编写相应的程序段编写相应的程序段13 “测试”指令例开开 始始取待输出数的取待输出数的偏移地址偏移地址读入状态字读入状态字测试测试bit1位状态位状态Bit1=1??取输入口地址取输入口地址取输出口地址取输出口地址 输出一个字输出一个字NY14 “测试”指令例 LEA SI,,DATA MOV DX,,38F0HWATT::IN AL,,DX TEST AL,,02H JZ WATT ;;ZF=1转移转移 MOV DX,,38FEH MOV AX,,[SI] OUT DX,,AX15 2. 移位指令n非循环移位指令非循环移位指令n循环移位指令循环移位指令n注:注: 移动一位时由指令直接给出;移动两位及以上,移动一位时由指令直接给出;移动两位及以上,则移位次数由则移位次数由CL指定。

      指定16 非循环移位指令n逻辑左移逻辑左移n算术左移算术左移n逻辑右移逻辑右移n算术右移算术右移17 算术左移和逻辑左移n格式:格式: SAL OPRD,,1 SAL OPRD,,CL SHL OPRD,,1 SHL OPRD,,CL有符号数有符号数无符号数无符号数逻辑逻辑左移左移移动一位后,若移动一位后,若CF与最高不相等,则与最高不相等,则OF=1;;否则否则OF=018 逻辑右移n格式:格式: SHR OPRD,,I SHR OPRD,,CL0CF无符号数无符号数的右移的右移移动一位后,若次高位与最高位不相等,则移动一位后,若次高位与最高位不相等,则OF=1;;否则否则OF=019 算术右移n格式:格式: SAR OPRD,,I SAR OPRD,,CL有符号数有符号数的右移的右移CF20 非循环移位指令的应用n左移可实现乘法运算左移可实现乘法运算n右移可实现除法运算右移可实现除法运算 见见教材教材教材教材p198p198例例例例21 循环移位指令不带进位位的循环移位不带进位位的循环移位 带进位位的循环移位带进位位的循环移位循环移位指令的格式、对操作数的要求与非循环移位指循环移位指令的格式、对操作数的要求与非循环移位指令相同令相同左移左移 ROL右移右移 ROR左移左移 RCL右移右移 RCR22 不带进位位的循环移位CFCF23 带进位位的循环移位CFCF24 循环移位指令的应用n用于对某些位状态的测试;用于对某些位状态的测试;n高位部分和低位部分的交换;高位部分和低位部分的交换;n与非循环移位指令一起组成与非循环移位指令一起组成32位或更长字位或更长字长数的移位。

      长数的移位25 程序例 MOV SI,1000H MOV DI,3000H MOV CX,4BBB::MOV AL,[SI] MOV BL,AL AND AL,0FH OR AL,30H MOV [DI],AL INC DI MOV AL,BLPUSH CXMOV CL,4SHR AL,CLSHR AL,CLOR AL,30HOR AL,30HMOV [DI],ALMOV [DI],ALINC DIINC DIINC SIINC SIPOP CXPOP CXDEC CXDEC CXJNZ BBBJNZ BBBHLTHLT程序程序功能?功能?26 程序功能n将将1000H开始存放的开始存放的四个压缩四个压缩BCD码转换码转换为为ASCII码存放在码存放在3000H开始的单元中开始的单元中去┇ ┇┇ ┇12H34H56H78H┇ ┇1000H3000H27 四、串操作指令n针对数据块或字符串的操作;针对数据块或字符串的操作;n可实现存储器到存储器的数据传送;可实现存储器到存储器的数据传送;n待操作的数据串称为源串,目标地址称为待操作的数据串称为源串,目标地址称为目标串。

      目标串28 串操作指令的特点n源串一般存放在数据段,偏移地址由源串一般存放在数据段,偏移地址由SI指定允许段重设;许段重设;n目标串必须在附加段,偏移地址由目标串必须在附加段,偏移地址由DI指定;指定;n指令自动修改地址指针,修改方向由指令自动修改地址指针,修改方向由DF决定DF=0 增地址方向;增地址方向;DF=1 减地址方减地址方向;向;n数据块长度值由数据块长度值由CX指定;指定;n可增加自动重复前缀以实现自动修改可增加自动重复前缀以实现自动修改CX内容29 串操作指令流程取源串地址取源串地址取目标串地址取目标串地址设串长度设串长度传送一个字节或字传送一个字节或字修改地址指针修改地址指针修改串长度值修改串长度值传送完否?传送完否?30 重复前缀nREP 无条件重复无条件重复nREPE 相等重复相等重复nREPZ 为零重复为零重复nREPNE 不相等重复不相等重复nREPNZ 不为零重复不为零重复条件重复条件重复CX≠0ZF=1CX≠0ZF=0CX≠0 重复重复31 串操作指令n串传送串传送 MOVSn串比较串比较 CMPSn串扫描串扫描 SCASn串装入串装入 LODSn串送存串送存 STOS32 串传送指令n格式:格式: MOVS OPRD1,,OPRD2 MOVSB MOVSW指令用于实现数据块的传送,常与无条件重复前缀连用。

      指令用于实现数据块的传送,常与无条件重复前缀连用33 串传送指令n对比用对比用MOV指令和指令和MOVS指令实现将指令实现将200个字节数据从内存的一个区域送到另一个个字节数据从内存的一个区域送到另一个区域的程序段区域的程序段34 串传送指令例n用串传送指令实现用串传送指令实现200个字节数据的传送:个字节数据的传送: LEA SI,,MEM1 LEA DI,,MEM2 MOV CX,,200 CLD REP MOVSB HLT35 串比较指令n格式:格式: CMPS OPRD1,,OPRD2 CMPSB CMPSWn该指令用于两个数据块或两个字符串之间的比较;该指令用于两个数据块或两个字符串之间的比较;n常与条件重复前缀连用,指令的执行不改变操作数,常与条件重复前缀连用,指令的执行不改变操作数,仅影响标志位仅影响标志位36 串比较指令例n测试上例中测试上例中200个字节数据是否传送正确:个字节数据是否传送正确:LEA SI,,MEM1LEA DI,,MEM2MOV CX,,200CLD REPE CMPSB JZ STOP DEC SI MOV AL,,[SI] MOV BX,,SISTOP::HLT 37 串扫描指令n格式:格式: SCAS OPRD SCASB SCASWn指令执行:指令执行:AX((或或AL))- OPRDn该指令常用于在某个区域中寻找关键字。

      该指令常用于在某个区域中寻找关键字目目 标标操作数操作数38 串装入指令n格式:格式: LODS OPRD LODSB LODSWn操作:操作:对字节:对字节: AL ([DS:SI])AL ([DS:SI]) 对对 字:字: AX ([DS:SI])AX ([DS:SI])源操作数源操作数39 串装入指令n用于将内存某个区域的数据串依次装入累加器,用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口以便显示或输出到接口nLODS指令一般不加重复前缀指令一般不加重复前缀40 串送存指令n格式:格式: STOS OPRD STOSB STOSWn操作:操作:对字节:对字节: AL ([ES:DI])AL ([ES:DI]) 对对 字:字: AX ([ES:DI])AX ([ES:DI])目目 标标操作数操作数41 串送存指令的应用n将内存某个区域清零将内存某个区域清零 区域首地址送区域首地址送ES::DI串长度送串长度送CX置方向标志置方向标志DF0送累加器送累加器AL执行串送存指令执行串送存指令开始开始42 五、程序控制指令n转移指令转移指令n循环控制循环控制n过程调用过程调用n中断控制中断控制43 1. 转移指令n无条件无条件转移指令转移指令 无条件转移到目标地址,执行新的指令无条件转移到目标地址,执行新的指令n有条件转移指令有条件转移指令 在具备一定条件的情况下转移到目标地址在具备一定条件的情况下转移到目标地址44 转移指令的转移原理n通过修改代码段寄存器通过修改代码段寄存器CS及指令指针及指令指针IP的内容,使程序改变顺序执行的模式,转的内容,使程序改变顺序执行的模式,转到新的目标地址执行。

      到新的目标地址执行45 无条件转移指令n指令格式:指令格式: JMP OPRDn无条件转移的目标地址可以是在当前代码段,无条件转移的目标地址可以是在当前代码段,也可在另一代码段也可在另一代码段46 无条件转移指令n段内转移段内转移——目标地址与目标地址与JMP指令在同一代码段指令在同一代码段n转移方式:转移方式: 直接转移直接转移——指令中直接给出转移的目标地址指令中直接给出转移的目标地址 间接转移间接转移——由指令中的寄存器或存储器间接给出转移由指令中的寄存器或存储器间接给出转移 目标地址目标地址47 无条件段内转移n直接转移:直接转移: JMP Lablen转移目标地址:转移目标地址: 段基地址不变;段基地址不变; 偏移地址偏移地址=当前当前IP+位移量位移量JMPLabel┇ ┇┇ ┇┇ ┇代代码码段段位移量位移量近地址标号近地址标号48 无条件段内转移n间接转移:间接转移: JMP BX JMP WORD PTR[BX]JMP┇ ┇┇ ┇┇ ┇代代码码段段数数据据段段BX=1200┇ ┇XXHXXHIP指令码指令码49 无条件段间转移n直接转移:直接转移: JMP FAR Lable远地址标号远地址标号JMPLabel┇ ┇┇ ┇┇ ┇代代码码段段1代代码码段段2XXHXXHXXHXXHIPCS50 无条件段间转移n间接转移:间接转移: JMP DWORD PTR[BX]XXHXXHXXHXXH[BX]IPCSJMP┇ ┇┇ ┇┇ ┇┇ ┇指令码指令码代代码码段段1代代码码段段2数数据据段段51 条件转移指令n在满足一定的条件下,程序转移到目标地址继在满足一定的条件下,程序转移到目标地址继续执行;续执行;n在条件转移指令之前,应有一条为条件转移指在条件转移指令之前,应有一条为条件转移指令的执行形成条件的指令(如对标志位产生影令的执行形成条件的指令(如对标志位产生影响的指令);响的指令);n条件转移指令均为段内短转移,即转移范围为:条件转移指令均为段内短转移,即转移范围为: -128------+127p20652 2. 循环控制指令n控制程序在以当前控制程序在以当前IP为中心的为中心的-128~~+127范围范围内循环执行;内循环执行;n循环次数由循环次数由CX寄存器指定。

      寄存器指定 循环指令循环指令无条件循环指令无条件循环指令LOOP 条件循环指令条件循环指令LOOPZ LOOPNZ53 无条件循环指令n格式:格式: LOOP Lablen循环条件:循环条件: CX ≠ 0nLOOP指令的操作相当于:指令的操作相当于: DEC CX JNZ Lable54 条件循环指令n格式:格式: LOOPZ Lable LOOPE Lablen循环条件:循环条件: CX ≠ 0 ZF=1n格式:格式: LOOPZ Lable LOOPE Lablen循环条件:循环条件: CX ≠ 0 ZF=155 3. 过程调用和返回段内调用段内调用段间调用段间调用段内直接调用段内直接调用段内间接调用段内间接调用段间直接调用段间直接调用段间间接调用段间间接调用56 调用指令与转移指令的比较n用于调用一个子过程;用于调用一个子过程;n调用前须保护断点地址;调用前须保护断点地址;n子过程执行结束后要返回原调用处继续执行子过程执行结束后要返回原调用处继续执行原程序原程序 —— 断点恢复。

      断点恢复57 调用指令的执行过程n将调用指令的下一条指令的地址(断点)压入将调用指令的下一条指令的地址(断点)压入堆栈;堆栈;n获取子过程的入口地址(子过程第获取子过程的入口地址(子过程第1条指令的条指令的偏移地址);偏移地址);n(执行子过程,含相应参数的保存及恢复);(执行子过程,含相应参数的保存及恢复);n将断点偏移地址由堆栈弹出,返回原程序将断点偏移地址由堆栈弹出,返回原程序58 段内调用n子过程与原调用程序在同一代码段,在调子过程与原调用程序在同一代码段,在调用之前只需保护断点的偏移地址用之前只需保护断点的偏移地址n格式:格式: CALL NEAR PROC近过程名近过程名断点断点入口入口地址地址59 段内调用例nCALL TIMREnCALL WORD PTR[SI]直接调用直接调用间接调用间接调用60 段间调用n子过程与原调用程序不在同一代码段,子过程与原调用程序不在同一代码段,在调在调用之前需保护断点的段基地址和偏移地址用之前需保护断点的段基地址和偏移地址n断点地址的保护是先将断点的断点地址的保护是先将断点的CS压栈,再将压栈,再将IP压入堆栈压入堆栈n指令格式:指令格式: CALL FAR PROC61 段间调用例nCALL FAR TIMREnCALL DWORD PTR[SI]62 返回指令n从堆栈中弹出断点地址,返回原程序。

      从堆栈中弹出断点地址,返回原程序n格式:格式: RETRETnRETRET指令一般位于子程序的最后指令一般位于子程序的最后63 4. 中断指令中断与过程调用:中断与过程调用:n中断是随机事件或异常事件引起,调用则是事中断是随机事件或异常事件引起,调用则是事先已在程序中安排好先已在程序中安排好 ;; n响应中断请求不仅要保护断点地址,还要保护响应中断请求不仅要保护断点地址,还要保护FLAGS内容;内容;n调用指令在指令中直接给出子程序入口地址,调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向中断指令只给出中断向量码,入口地址则在向量码指向的内存单元中量码指向的内存单元中64 中断指令n格式:格式: INT nn说明:说明: nх4 =存放中存放中断服务子程序入断服务子程序入口地址的单元地口地址的单元地址址中断类型码中断类型码n=0 〜〜 255n х4 XXHXXHXXHXXH入口偏移地址入口偏移地址IP入口段地址入口段地址CS65 中断指令操作:操作:n将将FLAGS压入堆栈;压入堆栈;n将将INT指令下一条指令的指令下一条指令的CS、、IP压栈;压栈;n取中断服务程序入口地址。

      取中断服务程序入口地址 66 中断指令例nINT 21HIPLIPHCSLCSHSP=1200FLAGSLFLAGSHSP=11FA执行执行INT指指令后令后保护断点保护断点67 中断指令例n执行执行INT 21H指令后指令后 IP=?? CS=??21Hх4=0084H 23H11H00H20HIP CS68 溢出中断指令n格式:格式: INTO n若若OF=1,OF=1,则启动一个类型为则启动一个类型为4 4的中断过程的中断过程, ,给出给出一个出错标志一个出错标志, ,如果如果OF=0,OF=0,不做任何操作不做任何操作nINTOINTO指令通常安排在有符号数加减运算指令之指令通常安排在有符号数加减运算指令之后相当于相当于INT 469 中断返回指令n格式:格式: IRETn中断服务程序的最后一条指令,负责中断服务程序的最后一条指令,负责恢复断点恢复断点恢复标志寄存器内容恢复标志寄存器内容70 六、处理器控制指令对标志位的操作对标志位的操作与外部设备的同步与外部设备的同步p213表表5-771 §5.4§5.4 汇编语言源程序掌握:掌握:n汇编语言与汇编程序的概念;汇编语言与汇编程序的概念;n汇编语言程序设计过程;汇编语言程序设计过程;n汇编语言源程序的结构框架;汇编语言源程序的结构框架;n常用伪指令及基本常用伪指令及基本DOS功能模块的应用。

      功能模块的应用72 一、一、80X86新增指令特点:n增加对增加对32位字长操作的指令;位字长操作的指令;n加强各类指令功能;加强各类指令功能;n增加了高级语言、控制保护、增加了高级语言、控制保护、Cache 管理管理等指令73 二、汇编语言及汇编程序n计算机语言:计算机语言:机器语言机器语言汇编语言汇编语言高级语言高级语言面向机器面向机器 的语言的语言机器语言机器语言汇编语言汇编语言高级语言高级语言74 汇编语言及汇编程序n汇编语言源程序汇编语言源程序 用助记符编写的程序用助记符编写的程序源程序的编译程序源程序的编译程序汇编程序汇编程序汇编语言汇编语言源程序源程序机器语言机器语言目标程序目标程序75 汇编语言程序设计与执行过程n输入汇编语言源程序输入汇编语言源程序 源文件源文件 .ASMn汇编(编译)汇编(编译) 目标文件目标文件 .OBJn链接链接 可执行文件可执行文件 .EXEn调试调试 最终程序最终程序76 汇编语言的语句格式n指令性语句指令性语句 —— 由由CPU执行的指令执行的指令n语句格式:语句格式:[标号:标号:] [前缀前缀] 助记符助记符 [操作数操作数],,[操作数操作数] [ ;注释;注释]指令的符号地址,指令的符号地址,标号后要有冒号标号后要有冒号操作码操作码注释前加分号注释前加分号77 汇编语言的语句格式n指示性语句指示性语句 :: CPU不执行的指令,不生成目标代码;不执行的指令,不生成目标代码; 由汇编程序执行,用于分配内存空间、定义变量、指由汇编程序执行,用于分配内存空间、定义变量、指示程序开始和结束等。

      示程序开始和结束等n指令格式:指令格式:[名字名字] 伪指令助记符伪指令助记符 操作数操作数 [,操作数,,操作数,…] [ ;注释;注释]变量的符号地址变量的符号地址其后不加冒号其后不加冒号指示性语句中至少有一个操作数指示性语句中至少有一个操作数78 操作数n常量常量 —— 数值或字符、字符串数值或字符、字符串n寄存器寄存器n存储器单元存储器单元n变量或标号变量或标号n表达式表达式 —— 可包括各种运算符可包括各种运算符79 变量n代表内存中的数据区,程序中视为存储器代表内存中的数据区,程序中视为存储器操作数操作数n变量的属性:变量的属性: 段段 值值 —— —— 变量所在段的段地址变量所在段的段地址 偏移量偏移量 —— —— 变量单元地址与段首地址之变量单元地址与段首地址之 间的位移量间的位移量 类类 型型 —— —— 字节型、字型和双字型字节型、字型和双字型80 三、基本伪指令n数据定义伪指令数据定义伪指令n符号定义伪指令符号定义伪指令n段定义伪指令段定义伪指令n设定段寄存器伪指令设定段寄存器伪指令n结束伪指令结束伪指令n* *过程定义伪指令过程定义伪指令n*宏命令伪指令宏命令伪指令81 数据定义伪指令n用于定义数据区中变量的类型用于定义数据区中变量的类型n格式:格式: [变量名变量名] 伪指令助记符伪指令助记符 操作数,操作数,[… ] [ ;注释;注释]82 数据定义伪指令伪指令助记符伪指令助记符nDB 定义的变量为字节型定义的变量为字节型nDW 定义的变量为字类型(双字节)定义的变量为字类型(双字节)nDD 定义的变量为双字型(定义的变量为双字型(4字节)字节)nDQ 定义的变量为定义的变量为4字型(字型(8字节)字节)nDT 定义的变量为定义的变量为10字节型字节型83 数据定义伪指令nDATA1 DB 11H,,22H,,33H,,44HnDATA2 DW 11H,,22H,,3344HnDATA3 DD 11H*2,,22H,,33445566H考虑以上变量在内考虑以上变量在内存中的存放形式存中的存放形式84 数据定义伪指令n伪指令的性质决定所定义变量的属性;伪指令的性质决定所定义变量的属性;n定义字符串必须用定义字符串必须用DB伪指令伪指令n例:例: DATA1 DB ‘ABCD’,,66H‘A’‘B’ ‘C’‘D’41H42H43H44H66H85 重复操作符n为一个数据区的各单元设置相同的初值为一个数据区的各单元设置相同的初值n格式:格式: [变量名变量名] 伪指令助记符伪指令助记符 n DUP((初值,初值,…))n例:例: BW 20 DUP((0)) DB 3 DUP((22H,,11H,?),?)随机数随机数86 符号定义伪指令n格式:格式: 符号名符号名 EQUEQU 表达式表达式n操作:操作: 用符号名取代后边的表达式,不可重新定义用符号名取代后边的表达式,不可重新定义n例:例: CONSTANTCONSTANTEQUEQU100100 VAR EQU 30H+99H VAR EQU 30H+99HEQU说明的表达式不占用内存空间说明的表达式不占用内存空间87 段定义伪指令n说明逻辑段的起始和结束;说明逻辑段的起始和结束;n说明不同程序模块中同类逻辑段之间的说明不同程序模块中同类逻辑段之间的联系形态联系形态88 段定义伪指令段名段名 SEGMENT [定位类型定位类型] [组合类型组合类型] [’类别类别’] ┇ ┇段名段名 ENDS说明逻辑说明逻辑段的起点段的起点说明不同模块说明不同模块中同名段的组中同名段的组和连接方式和连接方式89 段定义伪指令例DATA SEGMENT MEM1 DB 11H,,22HMEM2 DW 1234HDATA ENDS90 设定段寄存器伪指令n说明所定义逻辑段的性质说明所定义逻辑段的性质n格式格式 ASSUME 段寄存器名:段名段寄存器名:段名 [,段寄存器名:段名,,段寄存器名:段名,…]91 结束伪指令n表示源程序结束表示源程序结束n格式:格式: END [标号标号]92 一个完整源程序结构例DSEG SEGMENTDATA1 DB 1,,2,,DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)(?)ESEG ENDSSSEG SEGMENT DB 200 DUP(?)(?)SSEG ENDS93 一个完整源程序结构例CSEG SEGMENT ASSUME CS::CSEG,,DS::DSEG,, ES::ESEG,,SS::SSEG START::MOV AX,,DSEG MOV DS,,AX MOV AX,,ESEG MOV ES,,AX MOV AX,,SSEG MOV SS,,AX ┇ ┇ CSEG ENDS END START源程序源程序 代码代码94 过程定义伪指令n用于定义一个过程体用于定义一个过程体n格式:格式: 过程名过程名 PROC [ NEAR / FAR ] ┇ ┇ RET 过程名过程名 ENDP过程入口的符号地址过程入口的符号地址95 宏命令伪指令n宏命令宏命令——源程序中由汇编程序识别的具有源程序中由汇编程序识别的具有 独立功能的一段程序代码独立功能的一段程序代码n格式:格式: 宏命令名宏命令名 MACRO <形式参数形式参数> ┇ ┇ ┇ ┇ ENDM宏体宏体96 四、DOS功能模块n用用 INT 21H 软中断指令,可调用包含多个软中断指令,可调用包含多个子功能的功能包子功能的功能包;;n各子功能采用功能号来区分;各子功能采用功能号来区分;n功能包括:功能包括:设备管理、设备管理、目录目录目录目录管理管理管理管理、、、、文件管文件管文件管文件管 理理理理等等等等。

      97 DOS功能模块调用格式n调用格式:调用格式: MOV AH,,功能号功能号 <置相应参数置相应参数> INT 21H98 常用子功能n从键盘输入单字符并显示;从键盘输入单字符并显示;n从键盘输入字符串并显示;从键盘输入字符串并显示;n在屏幕上显示单字符;在屏幕上显示单字符;n在屏幕上显示字符串在屏幕上显示字符串99 从键盘输入单字符并显示n调用方法:调用方法: MOV AH,,01 INT 21Hn输入的字符在输入的字符在AL中中100 单字符输入例GET_KEY: MOVAH,1 INT21H CMPAL,’Y’ JZ YES CMPAL,’N’ JZ NO JNZGET_KEY YES: ┇ ┇ NO: ┇ ┇交互式应交互式应 答程序答程序101 从键盘输入字符串nAH 功能号功能号OAHnDS::DX 字符串在内存中的存放地址字符串在内存中的存放地址nINT 21H102 定义字符缓冲区n用户自定义缓冲区格式:用户自定义缓冲区格式:0DHN1N2整个缓冲区整个缓冲区最大键入字符数最大键入字符数实际键入字符数实际键入字符数103 输入字符串程序段nDAT1 DB 20,?,,?,20 DUP(?)(?)nLEA DX,,DAT1 MOV AH,,0AH INT 21H104 输入缓冲区14H ??20个字节个字节定义后的输入缓定义后的输入缓冲区初始状态:冲区初始状态:105 单字符显示输出nAH 功能号功能号O2HnDL 待输出字符待输出字符nINT 21H106 单字符显示输出例nMOVAH,,02nMOVDL,,41HnINT21H 执行结果:屏幕显示字符执行结果:屏幕显示字符 ‘A’107 字符串输出显示nAH 功能号功能号O9HnDS::DX 待输出字符串的偏移地址待输出字符串的偏移地址nINT 21H108 字符串输出显示例DATA SEGMENTMESS1 DB ‘Input String:’ 0DH,,0AH,’$’DATA ENDSCODE SEGMENT ┇ ┇MOV AH,,09MOV DX,,OFFSET MESS1INT21H ┇ ┇被显示的被显示的字符串必字符串必须以须以‘$’结束结束109 结束语n了解指令性语句及指示性语句的格式;了解指令性语句及指示性语句的格式;n了解操作数的类型及变量的属性;了解操作数的类型及变量的属性;n掌握掌握8086CPU指令系统的寻址方式;指令系统的寻址方式;n掌握掌握8086CPU指令系统指令系统6大类指令的功能;大类指令的功能;n掌握基本伪指令及主要掌握基本伪指令及主要DOS功能模块的应用;功能模块的应用;n掌握汇编语言源程序的结构框架;掌握汇编语言源程序的结构框架;n理解汇编语言程序设计的一般过程;理解汇编语言程序设计的一般过程;n具备编写简单汇编语言源程序的能力。

      具备编写简单汇编语言源程序的能力110 作业:n5.2n5.4n5.7n5.8n5.9n5.11n5.15n5.16n5.19111 。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.