最新复习ppt课件ppt课件.ppt
《最新复习ppt课件ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新复习ppt课件ppt课件.ppt(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 汇编语言基础3456789知识点知识点55、哪个标志位表示无符号数运算结果、哪个标志位表示无符号数运算结果的特征?哪个标志位表示有符号数的特征?哪个标志位表示有符号数运算结果的特征?如何判断?运算结果的特征?如何判断? 计算机内用进位标志计算机内用进位标志CF表示两个无符号数表示两个无符号数运运算结果的特征。算结果的特征。CF=1表示它们的加法有表示它们的加法有“进进位位”,或者它们的减法有,或者它们的减法有“借位借位”;CF=0则则表示没有产生进位或借位。表示没有产生进位或借位。 “溢出标志溢出标志OF”表示有符号数运算特征表示有符号数运算特征. OF= 1表示运算结果超过了表示范围
2、表示运算结果超过了表示范围, 称为称为“溢出溢出”;OF=0没有产生溢出。没有产生溢出。10知识点知识点66、内存储器容量由什么决定?、内存储器容量由什么决定?地址总线的位数地址总线的位数8086CPU有有20位地址线,则内位地址线,则内存储器容量为存储器容量为1MB = 220B.11知识点知识点77、给定一个内存地址,如何读出、给定一个内存地址,如何读出/写写入该地址内的字节数据入该地址内的字节数据/字数据字数据/双双字数据?字数据?12字数据:字数据:(00010H)=203EH双字数据:双字数据:(00010H)=5A2F203EH字节数据:字节数据:(00010H)=3EH从从000
3、10H单元分别读取单元分别读取1个字节数据、个字节数据、1个字数据和个字数据和1个双字数据个双字数据.3EH20H2FH5AH00010H00011H00012H00013H13若当前存储器内容如下所示若当前存储器内容如下所示, 将将1个字数据个字数据1E22H写入写入00012H单元。单元。3EH20H2FH5AH00010H00011H00012H00013H22H1EH14知识点知识点88、什么是逻辑地址?什么是物理地址?、什么是逻辑地址?什么是物理地址?掌握如何通过逻辑地址计算物理地掌握如何通过逻辑地址计算物理地址。址。151.14:若:若8086某存储单元物理地址为某存储单元物理地址
4、为12345H,则与它对应的逻辑地址中,则与它对应的逻辑地址中,偏移地址及段地址的最大值和最小值分偏移地址及段地址的最大值和最小值分别为多少?别为多少? 偏移地址最小值:偏移地址最小值:0005H 段地址最大值:段地址最大值:1234H 偏移地址最大值:偏移地址最大值:FFF5H 段地址最小值:段地址最小值:0235H161.15: 8086中最多可以有多少个不中最多可以有多少个不同的段地址?同的段地址? 65536个个171、一个、一个16个字的数据区个字的数据区, 其起始地其起始地址为址为1234H:1000H.计算该数据区计算该数据区首、末字单元的物理地址。首、末字单元的物理地址。 首字
5、单元地址首字单元地址1234H16D+1000H=13340H末字单元地址末字单元地址13340H+(16-1)2=13340H+1EH =1335EH182、如果一个程序开始执行之前,、如果一个程序开始执行之前,(CS)=1234H, (IP)=5678H,则该,则该程序段的第一个字的物理地址是程序段的第一个字的物理地址是多少?多少?1234H16D+5678H=179B8H19知识点知识点99、掌握、掌握8086CPU的寄存器的用途。的寄存器的用途。 哪些寄存器可存放偏移地址?哪些哪些寄存器可存放偏移地址?哪些寄存器可存放段地址?寄存器可存放段地址?汇编源程序指令中不能出现哪些寄汇编源程序
6、指令中不能出现哪些寄存器名?存器名?掌握标志寄存器中的各个状态标志掌握标志寄存器中的各个状态标志位的含义。位的含义。20AX,AL 在乘除法指令中作累加器在乘除法指令中作累加器 在在I/O指令中作数据寄存器指令中作数据寄存器AH 在在LAHF/SAHF指令中作目的指令中作目的/源寄存器源寄存器AL 在在BCD、ASCII码数据运算时作累加器码数据运算时作累加器 在在XLAT指令中作变址寄存器指令中作变址寄存器BX 间接寻址时作地址寄存器间接寻址时作地址寄存器 基址寻址、基址变址寻址时作基址寄存器基址寻址、基址变址寻址时作基址寄存器 在在XLAT指令中作基址寄存器指令中作基址寄存器CX 循环、数
7、据串指令中作循环次数寄存器循环、数据串指令中作循环次数寄存器CL 移位、循环移位指令中的移位次数寄存器移位、循环移位指令中的移位次数寄存器DX I/O指令存放端口号指令存放端口号 在乘除法指令中存放在乘除法指令中存放32位数据的高位数据的高16位位21堆栈指针寄存器堆栈指针寄存器SP (stack pointer)存放存放栈顶偏移地址。栈顶偏移地址。基址指针寄存器基址指针寄存器BP (base pointer)存放存放堆栈段中数据的偏移地址。堆栈段中数据的偏移地址。源变址寄存器源变址寄存器SI (source index)存放源数存放源数据区的偏移地址,用于寻址串指令的源数据区的偏移地址,用于
8、寻址串指令的源数据串。据串。目的变址寄存器目的变址寄存器DI (destination index)存存放目的数据区的偏移地址,用于寻址串指放目的数据区的偏移地址,用于寻址串指令的目的数据串令的目的数据串地址寄存器地址寄存器22CS (code segment)代码段寄存器代码段寄存器DS (data segment)数据段寄存器数据段寄存器SS (stack segment)堆栈段寄存器堆栈段寄存器ES (extra segment)附加段寄存器附加段寄存器16位寄存器位寄存器,存放相应段的段地址存放相应段的段地址段寄存器段寄存器23IP (instruction pointer)指令指针寄
9、指令指针寄存器,存放代码段中的偏移地址。在程存器,存放代码段中的偏移地址。在程序运行时,总是指向下一条指令的偏移序运行时,总是指向下一条指令的偏移地址,与地址,与CS一起确定下一条指令的物理一起确定下一条指令的物理地址。地址。FLAGS标志寄存器,记录指令操作后标志寄存器,记录指令操作后结果的状态信息或控制处理器的标志。结果的状态信息或控制处理器的标志。专用寄存器专用寄存器24l8086/8088CPU寄存器中可以存放段地寄存器中可以存放段地址的有址的有_.l8086/8088CPU寄存器中可以存放偏移寄存器中可以存放偏移地址的有地址的有_.l在程序运行时在程序运行时, 下一条将要执行的指令下
10、一条将要执行的指令的地址存放在的地址存放在_段寄存器与段寄存器与_寄存寄存器中器中.l指令中不能出现的寄存器是指令中不能出现的寄存器是_.CS, DS, SS, ESBX, SI, DI, SP, BP, IPCSIPIP, FLAGS25-100-120-100补补=1001 1100120补补= 0111 1000 0010 0100CF=0OF=1SF=0ZF=0PF=1若加法有进位或减法有若加法有进位或减法有借位借位,CF=1,否则否则CF=0.若两同号数相加得异号数若两同号数相加得异号数;或异或异号数相减后结果与减数符号相号数相减后结果与减数符号相同同,则则OF=1,否则否则OF=0
11、.运算结果为负数则运算结果为负数则SF=1,否则否则SF=0.运算结果运算结果=0则则ZF=1,否则否则ZF=0.运算结果低运算结果低8位有位有偶数个偶数个1则则PF=1,奇奇数个数个1则则PF=0.第2章 数据定义与传送27掌握的伪指令掌握的伪指令段定义伪指令段定义伪指令数据定义伪指令数据定义伪指令DB、DW、DDASSUME伪指令伪指令END伪指令伪指令处理器选择伪指令处理器选择伪指令ORG伪指令伪指令28掌握的指令掌握的指令掌握的指令,特别注意指令格式掌握的指令,特别注意指令格式:nMOVnLEAnLDS, LESnMOVZX, MOVSX, CBW,CWD,nXCHGnXLATnPUS
12、H, POP29知识点知识点11、掌握定义变量的方法、掌握定义变量的方法伪指令伪指令DB、DW、DD、DQ、DT的的作用?通过上述伪指令定义后的变量作用?通过上述伪指令定义后的变量具有哪些属性?具有哪些属性?当定义的数据是常数、表达式、变量当定义的数据是常数、表达式、变量/标号名、字符串、标号名、字符串、?或者或者$时,内存中时,内存中相应的存放内容是什么?相应的存放内容是什么?复制操作符复制操作符DUP的作用的作用伪指令伪指令ORG的作用。的作用。30习题习题2.1某数据段内有如下数据定义:某数据段内有如下数据定义:X DB 30, 30H, ABC, 2-3, ?, 11001010B D
13、W 0FFH,-2, “CD”Y DD 20 dup(15, 3 dup(?), 0)Z DB 3 dup(?)W DW Z-X假设变量假设变量X的偏移地址为的偏移地址为20H。 写出变量写出变量X各数据在内存中各数据在内存中 的具体位置和相关内存单元的值。的具体位置和相关内存单元的值。 写出变量写出变量Y,Z的偏移地址。的偏移地址。写出变量写出变量W的值的值Y的偏移地址的偏移地址002EHZ的偏移地址的偏移地址01BEH W的值的值 019EH30H41H1EH X42H43H0FFH00H0CAH0FFH00H0FFH0FEH44H43HDS:0020HDS:0021HDS:0022HDS
14、:0023HDS:0024HDS:0025HDS:0026HDS:0027HDS:0028HDS:0029HDS:002AHDS:002BHDS:002CHDS:002DHDS:002EH31知识点知识点22、掌握指令操作数、掌握指令操作数汇编指令可以有哪几种操作数?分汇编指令可以有哪几种操作数?分别以何种形式出现在指令中?别以何种形式出现在指令中?如何判断指令中的操作数是立即数、如何判断指令中的操作数是立即数、寄存器数、还是存储器数?寄存器数、还是存储器数?对于存储器操作数,如何求出该存对于存储器操作数,如何求出该存储器操作数在内存中的物理地址?储器操作数在内存中的物理地址?即如何取得该存储
15、器操作数。即如何取得该存储器操作数。32注意注意1:8086/8088CPU中,中,IP/FLAGS不能不能作为操作数出现在指令中。作为操作数出现在指令中。如指令如指令:MOV FLAGS, 1234H 错误错误注意注意2:8086/8088CPU中,用来间接寻址的中,用来间接寻址的寄存器有:寄存器有:BX、BP、SI、DI。33习题习题2.5现有现有(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=
16、0B7H,(21203H)=65H,说明下列指令执行,说明下列指令执行后后AX寄存器的内容。寄存器的内容。 MOV AX, 1200H MOV AX, BX MOV AX, 1200H MOV AX, BX MOV AX, 1100HBX MOV AX, BXSI MOV AX, 1100HBXSI(AX)=1200H(AX)=(BX)=0100H(AX)=(21200H)=4C2AH(AX)=(20100H)=3412H(AX)=(21200H)=4C2AH(AX)=(20102H)=7856H(AX)=(21202H)=65B7H34知识点知识点34、MOV指令指令MOV指令会影响标志位吗
17、?指令会影响标志位吗?MOV指令执行后源操作数和目的操指令执行后源操作数和目的操作数的内容发生变化吗?作数的内容发生变化吗?SRC和和DEST必须有相同类型吗?如必须有相同类型吗?如何改变或指定操作数类型呢?何改变或指定操作数类型呢?DEST可以是立即数或可以是立即数或CS寄存器吗?寄存器吗? 可以直接在两个存储器数之间传送吗?可以直接在两个存储器数之间传送吗?可以直接在两个段寄存器之间传送吗?可以直接在两个段寄存器之间传送吗?可以将立即数直接传送给段寄存器吗?可以将立即数直接传送给段寄存器吗?35习题习题2.4判断下列指令是否正确判断下列指令是否正确,指出错误原因指出错误原因.lMOV AX
18、, EBX 正确正确lMOV SI, DL错误错误, 两个操作数类型不匹配两个操作数类型不匹配lMOV EBP, ESPEAX*3错误错误,比例因子不能为比例因子不能为3lLEAAX, 3006H错误错误,源操作数应为内存操作数源操作数应为内存操作数lMOV BPDI, 0错误错误,操作数类型无法确定操作数类型无法确定lMOV SI, DI 错误错误,同时出现两个内存操作数同时出现两个内存操作数lMOV ES, 1000H错误错误,立即数不能直接送段寄存器立即数不能直接送段寄存器lMOV AX, X+2若若X用用EQU定义的符号或用定义的符号或用DW定义定义的内存变量的内存变量, 指令正确指令
19、正确, 否则错误否则错误lMOV AX, CX+2 错误错误,不可计算的不可计算的“常数表达式常数表达式”MOV EAXEAX*2正确正确36习题习题2. 8 指出下列指令的错误。指出下列指令的错误。 MOV Y, X 同时出现了两个存储器操作数同时出现了两个存储器操作数 MOV BL, 04B8H 操作数类型不匹配操作数类型不匹配 MOV AL, Z 操作数类型不匹配操作数类型不匹配 MOV BX, 3 操作数类型不能确定操作数类型不能确定 MOV BX, DI 两个操作数不能都是存储器数两个操作数不能都是存储器数 MOV DS, DATA 立即数直接送段寄存器立即数直接送段寄存器 MOV
20、NUM, AX 立即数不能用作目的操作数立即数不能用作目的操作数 MOV ES, DS 不能在段寄存器之间直接传输不能在段寄存器之间直接传输 MOV AX,FLAGS 指令中不能出现指令中不能出现FLAGSMOV CS,AX CS寄存器不能用作目的操作数寄存器不能用作目的操作数37知识点知识点44、LEA指令指令若若X是变量名是变量名,则指令则指令LEA BX, X与哪与哪条指令等价条指令等价?LEA指令的源操作数可以是立即数或指令的源操作数可以是立即数或寄存器数吗?寄存器数吗?LEA指令的目的操作数可以是立即数、指令的目的操作数可以是立即数、存储器数吗?可以是存储器数吗?可以是8位寄存器吗?
21、位寄存器吗? LEA指令影响标志位吗?指令影响标志位吗?MOV BX, OFFSET X38注意注意:LEA指令的源操作数是存储器指令的源操作数是存储器数,而目的操作数是数,而目的操作数是16位寄存器。位寄存器。 LEA AX, 201EH LEA 3105H, SI LEA BL, X 395、其他传送指令、其他传送指令LDS、LES的功能分别是什么?指令格式是什的功能分别是什么?指令格式是什么?影响标志位吗?么?影响标志位吗?CBW/CWD指令是对无符号数进行扩展呢还指令是对无符号数进行扩展呢还是对有符号数进行扩展?那么如何对无符号是对有符号数进行扩展?那么如何对无符号数进行扩展呢?数进行
22、扩展呢?MOVZX/MOVSX指令的功能和格式是什么?指令的功能和格式是什么?在汇编源程序中使用该指令时需要加入哪条在汇编源程序中使用该指令时需要加入哪条伪指令?伪指令?XCHG指令会改变源操作数和目的操作数内指令会改变源操作数和目的操作数内容吗?操作数可以是立即数吗?源操作数和容吗?操作数可以是立即数吗?源操作数和目的操作数类型要求相同吗?源操作数和目目的操作数类型要求相同吗?源操作数和目的操作数可以同时为存储器数吗?的操作数可以同时为存储器数吗? XLAT指令有什么应用?指令有什么应用?知识点知识点540实验报告实验报告1: 3、编写程序:数据段中有一字节变量、编写程序:数据段中有一字节变
23、量X,X的值为的值为0H0FH(即一位(即一位16进制数码),利用换码进制数码),利用换码XLAT指令将指令将X所代表所代表的一位的一位16进制数码转换为它所对应的进制数码转换为它所对应的16进制数字字符的进制数字字符的ASCII码码值。值。DATA SEGMENT X DB 0BHHEX DB 0123456789ABCDEFDATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AXLEA BX, HEXMOV AL, X XLAT MOV X, AL MOV AX, 4C00H INT 21H CO
24、DE ENDS END START416、堆栈、堆栈如何定义堆栈段?堆栈段的用途及结构特如何定义堆栈段?堆栈段的用途及结构特点?如何取得堆栈段的栈顶物理地址?点?如何取得堆栈段的栈顶物理地址?进栈进栈/出栈操作对堆栈如何影响?进栈出栈操作对堆栈如何影响?进栈/出出栈的数据可以是字节数据吗?栈的数据可以是字节数据吗?PUSH指令格式?影响标志位吗?指令格式?影响标志位吗?POP指令的操作数可以是立即数、指令的操作数可以是立即数、CS寄存寄存器吗?影响标志位吗?器吗?影响标志位吗? 如何使用如何使用PUSHF和和POPF指令访问标志寄指令访问标志寄存器内容?存器内容?知识点知识点642分析下列指令
25、正确与否。分析下列指令正确与否。PUSH AXPUSH CSPUSH BXPUSH XPUSH ALPUSH 1234H操作数为操作数为16位寄存器位寄存器,正确正确操作数为操作数为16位段寄存器位段寄存器,正确正确错误错误,存储器操作数类型不明存储器操作数类型不明确确,应修改为应修改为:PUSH WORD PTRBX若若X是是DW定义的变量定义的变量,则正确则正确错误错误! 堆栈操作必须以字堆栈操作必须以字(或双或双字字)为单位为单位,不允许字节堆栈不允许字节堆栈8086CPU不允许立即数不允许立即数操作数操作数.80386允许允许.43分析下列指令正确与否。分析下列指令正确与否。POP D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 复习 ppt 课件
限制150内