版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Q总共九章教学内容总共九章教学内容Q重点掌握第一章到第七章重点掌握第一章到第七章Q1、掌握数据在计算机内的表示及其相互转换、掌握数据在计算机内的表示及其相互转换Q2、计算机基本组成及各部分主要功能、计算机基本组成及各部分主要功能Q3、汇编指令寻址,硬指令、汇编指令寻址,硬指令/伪指令的功能与使伪指令的功能与使用形式用形式Q4、利用汇编语言实现程序的基本控制结构、利用汇编语言实现程序的基本控制结构Q5、中断系统与常用外设的、中断系统与常用外设的I/O程序设计程序设计Q6、系统功能调用、系统功能调用 熟练掌握:熟练掌握:Q数值数据在计算机内部的各种表示,二数值数据在计算机内部的各种表示,二进制、八
2、进制和十六进制之间的转换方进制、八进制和十六进制之间的转换方法。法。Q基本数据类型基本数据类型(字节、字、双字等字节、字、双字等)在汇编在汇编语言中的符号表示形式,它们计算机内语言中的符号表示形式,它们计算机内部的存储形式以及符号扩展的含义。部的存储形式以及符号扩展的含义。 数制 数制之间的转换 运算 数和字符的表示 数数 制制 基基 数数 数数 码码 二进制 Binary 2 0, 1 八进制八进制 Octal 8 0, 1, 2, 3, 4, 5, 6, 7 十进制十进制 Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 十六进制 Hexadecimal 16
3、 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F二进制: 基数为2,逢二进一 11012 = 12 3 + 12 2 + 12 0 = 1310十六进制:基数为16,逢十六进一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0 二进制二进制 十六进制十六进制 十进制十进制 二进制二进制 十进制十进制 十六进制十六进制降幂法降幂法 除法除法 算术运算算术运算 二进制数:二进制数:逢二进一逢二进一 借一当二借一当二 十六进制数:十六进制数:逢十六进一逢十六进一 借一当十
4、六借一当十六 0 5 C 3 H3 D 2 5 H4 2 E 8 H3 D 2 5 H0 5 C 3 H3 7 6 2 H1 11 1 逻辑运算(逻辑运算(按位操作按位操作)“与与”运算(AND) “或或”运算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1“非非”运算(NOT) “异或异或”运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 数的表示数的表示 7 6 5 4 3 2 1 0符号位符号位 数值位数值位假设机器字长为假设机器字长为16位:位:符号位
5、符号位 = 0 正数正数 数值位数值位 = 1 负数负数15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假设机器字长为假设机器字长为8位:位:数的常用表示法数的常用表示法 原码原码 反码反码 补码补码原码表示法原码表示法:符号:符号 + 绝对值绝对值例:例:n = 8bit +3原码原码 = 0 000,0011 = 03H - 3原码原码 = 1 000,0011 = 83H +0原码原码 = 0 000,0000 = 00H - 0原码原码 = 1 000,0000 = 80H 0 的表示不唯一的表示不唯一反码表示法反码表示法:正数的反码同原码,负数的反码数值位与
6、原码相反:正数的反码同原码,负数的反码数值位与原码相反例:例:n = 8bit +5反码反码 = 0 000,0101 = 05H - 5反码反码 = 1 111,1010 = FAH +0反码反码 = 0 000,0000 = 00H - 0反码反码 = 1 111,1111 = FFH 0 的表示不唯一的表示不唯一例:例: 机器字长机器字长8位,位,-46补码补码 = ? ? 46补码补码 = 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 = D2H 机器字长机器字长16位,位,-46补码补码 = FFD2H +0补码补码 = 0 0 0
7、0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 = 00H = - 0补码补码 0 的表示唯一的表示唯一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一补码表示法:补码表示法:正数的补码:正数的补码: 同原码同原码负数的补码负数的补码:(1 1)写出与该负数相对应的正数的补码写出与该负数相对应的正数的补码 (2 2)按位求反按位求反 (3 3)末位加一末位加一 十进制十进制 二进制二进制 十六进制十六进制 十进制十进制 十六进制十六进制 n=8 n=16 +127 0111 1111 7F +32767 7FFF +126 0111 1110
8、 7E +32766 7FFE . . . +2 0000 0010 02 +2 0002 +1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE . . .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 8000n位二进制补码的表数范围:位二进制补码的表数范围: - 2n-1 N 2n-1-1无符号整数的表数范围:无符号整数的表数范围: 0 N
9、2n-1 补码的加法和减法补码的加法和减法:求补运算求补运算 :对一个二进制数按位求反、末位加一:对一个二进制数按位求反、末位加一 X补码补码 -X补码补码 X补码补码加法规则:加法规则:X+Y补码补码 = X补码补码 + Y补码补码减法规则:减法规则:X-Y补码补码 = X补码补码 + -Y补码补码 补码减法可转换为补码加法补码减法可转换为补码加法 64(-46) 180100 00001101 00100001 0010例: 字符的表示字符的表示ASCII码码:用一个:用一个字节字节来表示一个字符,低来表示一个字符,低7位位 为字符的为字符的ASCII值,最高位一般用作值,最高位一般用作
10、校验位。校验位。 例:例: A 41H a 61H 1 31H 换行换行 0AH 回车回车 0DH 空格空格 20H负数的表示方法负数的表示方法如如:-5?熟练掌握熟练掌握:Q 8位、位、16位和位和32位寄存器组中各寄存器位寄存器组中各寄存器的名称、主要用途和它们之间的关系。的名称、主要用途和它们之间的关系。Q 内存单元的逻辑划分方法内存单元的逻辑划分方法Q 逻辑地址和物理地址之间的相互转换方逻辑地址和物理地址之间的相互转换方法。法。 计算机系统计算机系统 存储器存储器 中央处理机中央处理机 外部设备外部设备1. 计算机系统计算机系统计算机系统包括计算机系统包括硬件硬件和和软件软件两大部分。
11、两大部分。硬件:硬件:软件:软件:分为系统软件和用户软件分为系统软件和用户软件中央处理机中央处理机 CPU总线控制总线控制 逻辑逻辑接接 口口接接 口口存储器存储器大容量大容量存储器存储器I/O设备设备I/O子系统子系统系统总线系统总线.2. 存储器存储器存储单元的存储单元的地址地址和和内容内容: 1 0 0 1 1 1 1 1 1000H ( 1000H ) = 9F H0 0 1 0 0 1 1 0 1001H 0 0 0 1 1 1 1 0 1002H ( 1002H ) = 1E H1 1 0 1 0 1 1 1 1003H 字节 ( 1000H ) = 269F H ( 1002H
12、) = D71E H ( 1001H ) = 1E26 H 访问两次存储器( 1001H ) = 26 H( 1003H ) = D7 H字单元字节单元:20根地址线根地址线:地址范围地址范围 00000H FFFFFH小段:小段:每每16个字节为一小段,共有个字节为一小段,共有64K个小段个小段 小段的首地址小段的首地址 00000H 0000FH 00010H 0001FH 00020H 0002FH FFFF0H FFFFFH 段起始地址段起始地址:小段首地址小段首地址物理地址物理地址:每个存储单元唯一的每个存储单元唯一的20位地址位地址 段地址段地址:段起始地址的高段起始地址的高16位
13、位 偏移地址偏移地址:段内相对于段起始地址的偏移值段内相对于段起始地址的偏移值 (有效地址(有效地址 EA)物理地址的计算物理地址的计算:物理地址物理地址 = 16d 段地址段地址 + 偏移地址偏移地址 16 位位 段段 地地 址址 16 位位 偏偏 移移 地地 址址 0000+ 20 位位 物物 理理 地地 址址问题问题:一个字单元的物理地址该如何表示呢一个字单元的物理地址该如何表示呢?Q内存数据区共占用内存数据区共占用10个字单元个字单元,已知起始已知起始地址为地址为13BA:00BA,求该字节单元的物理求该字节单元的物理地址是多少地址是多少?QPA=13BA0+00BAQ=13C5AH存
14、储器的存储器的逻辑逻辑分段分段: 存储器存储器64K代码代码01500H42000H1CD00H0150H4200H1CD0H段寄存器段寄存器CSDSSSES64K堆栈堆栈64K数据数据 64K附加数据附加数据B0000HB000H8086/8088寄存器组:寄存器组:数据寄存器:数据寄存器:指针及变址寄存器:指针及变址寄存器:SP、BP、SI、DI段寄存器:段寄存器: CS、DS、SS、ES控制寄存器:控制寄存器: IP、FLAGSCPU组成:算术逻辑部件组成:算术逻辑部件ALU、控制逻辑、控制逻辑、 工作寄存器工作寄存器 AX BX CX DX AH AL BH BL CH CL DH D
15、L 高高8位位 低低8位位标志寄存器(标志寄存器(程序状态字寄存器程序状态字寄存器 PSW) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 条件码标志:条件码标志: 控制标志:控制标志:OFOF 溢出标志溢出标志 DF DF 方向标志方向标志 SFSF 符号标志符号标志 IF IF 中断标志中断标志ZFZF 零标志零标志 TF TF 陷阱标志陷阱标志CF CF 进位标志进位标志AFAF 辅助进位标志辅助进位标志PFPF 奇偶标志奇偶标志OF DF IF TF SF ZF AF PF CF外设接口(外设接口(Interface) 每个接口包括一组寄存器:每个接口包括
16、一组寄存器: 数据寄存器数据寄存器 状态寄存器状态寄存器 命令寄存器命令寄存器端口(端口(Port)地址)地址 0000FFFFH Q要输入端口要输入端口1234H中的中的8位数据,其指令位数据,其指令应是(应是( )Qmov dx,1234hQin al,dx熟练掌握熟练掌握:Q七种最基本的操作数寻址方式的含义,七种最基本的操作数寻址方式的含义,有效地址有效地址Q各种各种指令的功能、特殊要求指令的功能、特殊要求(注意事项注意事项)和和隐含操作数隐含操作数 指令系统指令系统 寻址方式寻址方式 与与数据数据有关的寻址方式有关的寻址方式 与与转移地址转移地址有关的寻址方式有关的寻址方式重要知识点重
17、要知识点问题问题:哪些寄存器可以用来寻址哪些寄存器可以用来寻址?1. 8086的寻址方式的寻址方式 与数据有关的寻址方式与数据有关的寻址方式:立即寻址立即寻址 MOV AX , 3069H寄存器寻址寄存器寻址 MOV AL , BH直接寻址直接寻址 MOV AX , 2000H 寄存器间接寻址寄存器间接寻址 MOV AX , BX 寄存器相对寻址寄存器相对寻址 MOV AX , COUNT SI 基址变址寻址基址变址寻址 MOV AX , BP DI 相对基址变址寻址相对基址变址寻址 MOV AX , MASK BX SI 与转移地址有关的寻址方式:与转移地址有关的寻址方式: 段内段内寻址寻址
18、 段内直接寻址段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址段内间接寻址 JMP TABLE BX 段间段间寻址寻址 段间直接寻址段间直接寻址 JMP FAR PTR NEXT 段间间接寻址段间间接寻址 JMP DWORD PTR BX 数据传送指令数据传送指令 算术指令算术指令 逻辑指令逻辑指令 串处理指令串处理指令 控制转移指令控制转移指令 处理机控制指令处理机控制指令2. 8086的指令系统的指令系统重点关注!重点关注! 指令的汇编格式指令的汇编格式 指令的基本功能指令的基本功能 指令支持的寻址方式指令支持的寻址方式 指令的执行对标志位的影指令的执行对标志位的影响响 指令
19、的特殊要求指令的特殊要求数据传送指令数据传送指令: 通用数据传送指令通用数据传送指令 MOV、PUSH、POP、XCHG 累加器专用传送指令累加器专用传送指令 IN、OUT、XLAT 地址传送指令地址传送指令 LEA、LDS、LES 标志寄存器传送指令标志寄存器传送指令 LAHF、SAHF、PUSHF、POPF 算术指令:算术指令: 加法指令加法指令 ADD、ADC、INC 减法指令减法指令 SUB、SBB、DEC、NEG、CMP 乘法指令乘法指令 MUL、IMUL 除法指令除法指令 DIV、IDIV 符号扩展指令符号扩展指令 CBW、CWD 十进制调整指令十进制调整指令 DAA、DAS、 A
20、AA、AAS、AAM、AAD逻辑指令逻辑指令: 逻辑运算指令逻辑运算指令 AND、OR、NOT、XOR、TEST 移位指令移位指令 SHL、SAL、SHR、SAR、 ROL、ROR、RCL、RCR串处理指令串处理指令: 设置方向标志指令设置方向标志指令 CLD、STD 串处理指令串处理指令 串重复前缀串重复前缀 MOVSB / MOVSW REP STOSB / STOSW REPE / REPZ LODSB / LODSW REPNE / REPNZ CMPSB / CMPSW SCASB / SCASW 控制转移指令控制转移指令: 无条件转移指令无条件转移指令 JMP 条件转移指令条件转移
21、指令JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、JLE / JNLE、 JCXZ 循环指令循环指令 LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE 子程序调用和返回指令子程序调用和返回指令 CALL、RET 中断与中断返回指令中断与中断返回指令 INT、INTO、IRET 处理机控制指令处理机控制指令: 标志位处理指令标志位处理指令 CLC、 STC、 CMC、 CLD、STD、 CLI、STI 处理机控制指令处理机控制指令 NOP、HLT、WAIT、ES
22、C、LOCK Qmov ax,bxQmov ax,blQmov cs,bxQmov cs,1000hQadd bx,esQmov bx,siQshl dx,clQand ax,cxQdiv dx,2Qdiv 2Qinc axQxchg ax,dsQxchg al,12hQxchg si,dimov al,sixchg al,dimov si,al 汇编程序功能汇编程序功能 伪操作伪操作 汇编语言程序格式汇编语言程序格式 汇编语言程序的上机过程汇编语言程序的上机过程汇编程序汇编程序编辑程序编辑程序连接程序连接程序 program.asmprogram.asm program.objprogram
23、.objprogram.exeprogram.exe1. 汇编程序功能汇编程序功能汇编程序的主要功能:汇编程序的主要功能: 检查源程序,给出出错信息。检查源程序,给出出错信息。 产生目标文件产生目标文件( (.obj.obj) )和列表文件和列表文件( (.lst.lst) )。 展开宏指令。展开宏指令。2. 伪操作(伪操作(伪指令伪指令) 程序结构伪操作:程序结构伪操作: 段定义伪操作、程序开始和结束伪操作等。段定义伪操作、程序开始和结束伪操作等。 ( ( SEGMENT、ENDS、ASSUME、NAME、TITLE、END ) 数据类型及数据定义伪操作:数据类型及数据定义伪操作: 数据定义
24、及存储器分配伪操作、数据定义及存储器分配伪操作、表达式赋值伪操作、基数控表达式赋值伪操作、基数控 制伪操作等。制伪操作等。 ( ( DB、DW、DD、DQ、DT、LABEL、EQU、=、.RADIX ) 地址计数器与对准伪操作:地址计数器与对准伪操作: ( $、ORG、EVEN )data data segmentsegment ; 定义数据段定义数据段 data data endsendsextra extra segmentsegment ; 定义附加段定义附加段 extra extra endsendscode code segmentsegment ; 定义代码段定义代码段 assum
25、e cs:code,ds:data,es:extraassume cs:code,ds:data,es:extrastart:start: mov ax, data mov ax, data mov ds, ax mov ds, ax ; 段地址段地址段寄存器段寄存器 code code endsends end end startstart3. 汇编语言程序格式汇编语言程序格式表达式表达式:数字表达式:数字表达式 地址表达式地址表达式标号标号 指令指令 寄存器寄存器 说明程序或语句说明程序或语句变量变量 伪指令伪指令 标号标号 的功能的功能 宏指令宏指令 变量变量 常数常数 表达式表达式源程
26、序的每条语句可表示为:源程序的每条语句可表示为: 符号地址符号地址 操作操作 操作数操作数 ; 注释注释 表达式操作符表达式操作符:(1) 算术操作符算术操作符: 、 、 、 、mod(2) 逻辑操作符逻辑操作符: AND、OR、XOR、NOT(3) 关系操作符关系操作符: EQ、NE、LT、LE、GT、GE(4) 属性操作符属性操作符: PTR、SHORT、THIS、HIGH、 LOW(5) 数值回送操作符数值回送操作符: OFFSET、SEG、TYPE、 LENGTH、SIZEQ DATA_BYTE DB 10,4,10H,?Q DATA_WORD DW 100,100H,-5,?Q CO
27、UNT EQU ($-DATA_WORD)/2 - - 0AH0AH 04H 04H 10H 10H - - 64H64H 00H00H 00H00H 01H01H FBHFBH FFHFFH - -DATA_BYTE DATA_BYTE DATA_WORD DATA_WORD MOV AX,WORD PTR DATA_BYTE+1MOV AL,BYTE PTR DATA_WORD+3MOV BL,DATA_BYTECBW 00H00H 01H 00H 02H 00H 7CH7CH 00H00H 03H 00H 04H 00H 82H82H ARRAY 007E007E007800780074
28、0074 循环程序设计循环程序设计 分支程序设计分支程序设计编制汇编语言程序的步骤:编制汇编语言程序的步骤:(1) 分析题意,确定算法分析题意,确定算法(2) 根据算法画出程序框图根据算法画出程序框图(3) 根据框图编写程序根据框图编写程序(4) 上机调试程序上机调试程序分支结构分支结构 子程序结构子程序结构程序结构:程序结构: 复合结构:多种程序结构的组合复合结构:多种程序结构的组合 顺序结构顺序结构 循环结构循环结构1. 循环程序设计循环程序设计DO-WHILE 结构结构 DO-UNTIL 结构结构控制条件控制条件初始化初始化循环体循环体YN控制条件控制条件初始化初始化循环体循环体YN初始
29、化初始化:设置循环的初始状态设置循环的初始状态循环体循环体:循环的工作部分及修改部分循环的工作部分及修改部分控制条件控制条件:计数控制计数控制 特征值控制特征值控制 地址边界控制地址边界控制例子:例子: 将二进制数以十六进制的形式显示在屏幕上将二进制数以十六进制的形式显示在屏幕上 统计统计 1 的个数的个数,求数组元素之和求数组元素之和 在数组中插入一元素在数组中插入一元素,查找第一个是查找第一个是0的数据的数据 数组运算(静态地预置逻辑尺)数组运算(静态地预置逻辑尺) 从键盘输入字符串(动态地修改标志位)从键盘输入字符串(动态地修改标志位) 起泡排序(多重循环)起泡排序(多重循环)注意注意:
30、LOOP,LOOPNZ,LOOP指令的含义指令的含义!ADRR DB 0AH,02H,03H,33H,FFHCOUNT EQU $-ADRRRESULT DW ? MOVCX,COUNT MOVBX,-1NEXT: INC BX CMPADRRBX,0AH LOOPNZ NEXT JZDONE MOVBX,OFFHDONE: MOVRESULT,BX2. 分支程序设计分支程序设计 case 1 case 2 case n? case 1 case 2 case n CASE 结构结构 IF-THEN-ELSE 结构结构(1) 逻辑尺控制逻辑尺控制(2) 条件控制条件控制(3) 地址跳跃表地址跳
31、跃表(值与地址有对应关系的表)(值与地址有对应关系的表)例子:例子: 折半查找折半查找 根据不同条件转多个程序分支(跳跃表法)根据不同条件转多个程序分支(跳跃表法)JMP指令采用多种寻址方式:寄存器间接寻址指令采用多种寻址方式:寄存器间接寻址基址变址寻基址变址寻址址寄存器相对寻址寄存器相对寻址如如:分别求出数组元素正数分别求出数组元素正数负数负数0的和及平均值的和及平均值. 过程定义伪操作过程定义伪操作 子程序的调用与返回子程序的调用与返回 保存与恢复寄存器保存与恢复寄存器 子程序的参数传送子程序的参数传送 子程序的嵌套与递归子程序的嵌套与递归1. 过程定义伪操作过程定义伪操作 过程名过程名
32、PROC PROC NEARNEAR ( ( FARFAR ) ) 过程名过程名 ENDPENDP(1 1)NEARNEAR属性:调用程序和子程序在同一代码段中属性:调用程序和子程序在同一代码段中 (段内调用)(段内调用)(2 2)FARFAR属性:调用程序和子程序不在同一代码段中属性:调用程序和子程序不在同一代码段中 (段间调用)(段间调用).codecode segment segment main proc main proc farfar . . call call subr1subr1 . . ret retmain endpmain endpsubr1subr1 proc proc
33、 nearnear . . ret retsubr1subr1 endp endpcodecode ends ends segx segx segment segment subtsubt proc proc farfar . . ret ret subt subt endp endp . . call call subtsubt . . segxsegx ends ends segysegy segment segment . . call call subtsubt . . segysegy ends ends子程序调用子程序调用:隐含使用堆栈保存返回地址:隐含使用堆栈保存返回地址 cal
34、l call nearnear ptr subp ptr subp (1) 保存返回地址保存返回地址(2) 转子程序转子程序 ( IP ) subpsubp 的偏移地址的偏移地址 call call farfar ptr subp ptr subp (1) 保存返回地址保存返回地址(2) 转子程序转子程序 ( CS ) subpsubp 的段地址的段地址 ( IP ) subpsubp 的偏移地址的偏移地址2. 子程序的调用与返回子程序的调用与返回( SP ) ( IP )( CS )( SP ) ( IP )子程序返回子程序返回:retret3. 保存与恢复寄存器保存与恢复寄存器subtsu
35、bt proc far proc far push ax push ax push bx push bx push cx push cx push dx push dx . . pop dx pop dx pop cx pop cx pop bx pop bx pop ax pop ax ret retsubtsubt endp endp(1) 通过寄存器传送参数通过寄存器传送参数(2) 通过存储器传送参数通过存储器传送参数(3) 通过地址表传送参数地址通过地址表传送参数地址(4) 通过堆栈传送参数或参数地址通过堆栈传送参数或参数地址4. 子程序的参数传送子程序的参数传送例子:例子: 十进制数
36、到十六进制数的转换十进制数到十六进制数的转换 累加数组中的元素累加数组中的元素data segmentdata segment aryary dw 1,2,3,4,5,6,7,8,9,10 dw 1,2,3,4,5,6,7,8,9,10 countcount dw 10 dw 10 sumsum dw ? dw ?data endsdata endsproaddproadd proc near proc near lea si, lea si, aryary mov cx, mov cx, countcount xor ax, ax xor ax, axnext : add ax, sinex
37、t : add ax, si add si, 2 add si, 2 loop next loop next mov mov sumsum, ax, ax ret retproaddproadd endp endp主程序:主程序: call call proaddproadd子程序:子程序:通过存储器传送参数:通过存储器传送参数:通过通过地址表地址表传送参数地址:传送参数地址:table dw 3 dup ( ? )table dw 3 dup ( ? ) mov mov tabletable, offset , offset aryarymov mov tabletable+2, offse
38、t +2, offset countcountmov mov tabletable+4, offset +4, offset sumsummov mov bx bx , offset , offset tabletablecall call proaddproaddproaddproadd proc near proc nearmov si, bxmov si, bxmov di, bx+2mov di, bx+2mov cx, dimov cx, dimov di, bx+4mov di, bx+4xor ax, axxor ax, axnext : next : add ax, si ad
39、d ax, si add si, 2 add si, 2loop nextloop nextmov di, axmov di, axretretproadd proadd endp endp子程序中:子程序中: stack segment stack segment dw 100 dup (?) dw 100 dup (?) tos label word tos label word stack ends stack ends通过堆栈传送参数或参数地址通过堆栈传送参数或参数地址: :mov ax, stackmov ax, stackmov ss, axmov ss, axmov sp, of
40、fset tosmov sp, offset tos子程序的嵌套:子程序的嵌套: 主程序主程序 子程序子程序A A 子程序子程序B B递归子程序:递归子程序:n!5. 子程序的嵌套与递归子程序的嵌套与递归 call call proc_Aproc_Aproc_Aproc_A call call proc_Bproc_Bretretproc_Bproc_B retret 宏宏汇编汇编 重复汇编重复汇编 条件汇编条件汇编1. 宏汇编宏汇编 宏宏:源程序中一段有独立功能的程序代码。源程序中一段有独立功能的程序代码。宏指令宏指令:用户自定义的指令。在编程时,将多次用户自定义的指令。在编程时,将多次 使
41、用的功能用一条宏指令来代替。使用的功能用一条宏指令来代替。 汇编语言程序汇编语言程序指令指令伪指令(伪操作)伪指令(伪操作)宏指令宏指令宏定义:宏定义: macro_namemacro_name MACRO 哑元表哑元表 LOCAL 标号表标号表 (宏定义体)(宏定义体) ENDM宏调用:宏调用: (必须先定义后调用)(必须先定义后调用) macro_namemacro_name 实元表实元表 宏展开:宏展开: 汇编程序把汇编程序把宏调用宏调用展开展开例:求绝对值例:求绝对值宏定义宏定义:absol absol MACROMACRO operoper LOCAL nextLOCAL next
42、cmp cmp operoper , 0, 0 jge next jge next neg neg operopernext: next: ENDMENDM宏调用宏调用:absol absol varvarabsol absol bxbx宏展开:宏展开: + cmp var , 0+ jge ?0000+ neg var+ ?0000: + cmp bx , 0+ jge ?0001+ neg bx+ ?0001: 宏汇编操作符:宏汇编操作符: & ; %符号符号1 & 符号符号2 宏展开时宏展开时, ,合并前后两个符号形成一个符号。合并前后两个符号形成一个符号。; 注释注释
43、宏展开时,宏展开时,;后面的注释不予展开。后面的注释不予展开。 % 表达式表达式 汇编程序将汇编程序将%后面的表达式转换为数字,并在后面的表达式转换为数字,并在展开期间用这个数取代哑元。展开期间用这个数取代哑元。 I/O 设备的数据传送方式设备的数据传送方式 程序直接控制程序直接控制 I/O 方式方式 中断传送方式中断传送方式查询方式查询方式(程序控制方式程序控制方式)中断方式中断方式DMA方式方式(直接存储器存取方式直接存储器存取方式/ /成组传送方式成组传送方式) 1. I/O设备的数据传送方式设备的数据传送方式 I/O 指令指令是主机与外设进行通信的最基本是主机与外设进行通信的最基本途径
44、。途径。DOS 功能调用和功能调用和BIOS例行程序中的输例行程序中的输入入/ /输出功能也是由输出功能也是由IN和和OUT指令完成的。指令完成的。例:循环测试某状态寄存器的第例:循环测试某状态寄存器的第2位是否为位是否为1 WAIT1 : IN AL , 27H TEST AL , 00000100B JZ WAIT12. 程序直接控制程序直接控制 I/O 方式方式设备控制寄存器设备控制寄存器( 61H )1 / 0 0 控制其它外部设备控制其它外部设备与门与门放大器放大器2号定时器门控号定时器门控1 0例:例:Sound 程序程序in al , 61hin al , 61hout 61h
45、, alout 61h , al中断源:中断源:引起中断的事件引起中断的事件外中断外中断(硬中断硬中断): 外设的外设的 I/O 请求请求 可屏蔽中断可屏蔽中断 电源掉电电源掉电 / 奇偶错奇偶错 非屏蔽中断非屏蔽中断内中断内中断(软中断软中断): INT 指令指令 / CPU 错(除法错、溢出)错(除法错、溢出)/ 为调试程序设置的中断为调试程序设置的中断3. 中断传送方式中断传送方式 类型类型0的的(IP) 类型类型0的的(CS) 类型类型1的的(IP) 类型类型1的的(CS) 类型类型N的的(IP) 类型类型N的的(CS) 类型类型255的的(IP) 类型类型255的的(CS)0000000004 4*N003FC中断向量:中断向量: 中断例行程序的入口地址中断例行程序的入口地址中断向量表中断向量表INT n (n : 中断类型号中断类型号)(1) 保存现场和返回地址保存现场和返回地址(2) 转中断处理程序转中断处理程序 ( IP ) ( n*4 ) ( CS ) ( n*4 + 2 )IRET( CS )( SP ) ( IP )( PSW )例例: BIOS中断中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南师范大学2025年招聘员额制工作人员(硕士)4人(公共基础知识)综合能力测试题附答案
- 2025安徽六安金寨县纪委监委(含县委巡察机构)选调公务员10人备考题库附答案
- 2025山西阳泉人才发展集团招聘服务工作人员19人考前自测高频考点模拟试题附答案
- 2025广东深圳市眼科医院招聘5人备考题库附答案
- AI在气候变化建模中的应用:技术原理与实践案例
- 2026上半年新疆巴州女兵征集开始笔试备考试题及答案解析
- 2026重庆工信职业学院招聘12人笔试参考题库及答案解析
- 2025秋人教版道德与法治八年级上册5.3友善待人课件
- 2025广东佛山大学附属第三医院招聘事业单位聘用制(编制)工作人员36人(第一批)笔试模拟试题及答案解析
- 2026四川自贡医元健康管理有限责任公司招聘工作人员11人笔试备考试题及答案解析
- 中国痤疮治疗指南
- 居民自建桩安装告知书回执
- 老同学聚会群主的讲话发言稿
- 国家开放大学最新《监督学》形考任务(1-4)试题解析和答案
- 天然气输气管线阴极保护施工方案
- 高血压问卷调查表
- GB/T 25156-2010橡胶塑料注射成型机通用技术条件
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
- GB/T 242-2007金属管扩口试验方法
- GB/T 21776-2008粉末涂料及其涂层的检测标准指南
- 全新版尹定邦设计学概论1课件
评论
0/150
提交评论