1 / 28

期中复习

期中复习. 2008.11. 第一章. 数制转换 十进制,二进制,十六进制 整数,小数 正负数的表示:真值,原码、反码、补码 * 对于正数,三种表示法均相同,它们的差别仅在于对负数的表示。 表示的数的范围,特别注意 0 以及最大最小数的表示 数的定点和浮点表示 计算机中常用的编码 BCD 码(组合,非组合) ASCII 码 汉字编码 补码的运算及溢出的判别(双高位判别法) [-y] 补 =[[y] 补 ] 变补 变补即将各位 [y] 补 (包括符号位)变反加 1 [[y] 补 ] 补 =[y] 原 微型计算机系统的组成和基本性能指标.

spence
Télécharger la présentation

期中复习

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 期中复习 2008.11

  2. 第一章 • 数制转换 十进制,二进制,十六进制 整数,小数 • 正负数的表示:真值,原码、反码、补码 *对于正数,三种表示法均相同,它们的差别仅在于对负数的表示。 表示的数的范围,特别注意0以及最大最小数的表示 • 数的定点和浮点表示 • 计算机中常用的编码 • BCD码(组合,非组合) • ASCII码 • 汉字编码 • 补码的运算及溢出的判别(双高位判别法) [-y]补=[[y]补]变补 变补即将各位[y]补(包括符号位)变反加1 [[y]补]补=[y]原 • 微型计算机系统的组成和基本性能指标

  3. 第一章 • [x]补=00110011B [y]补=11001100B, 则[x-y]补= ,运行结果状态标志ZF= ,SF= ,OF= • [x]补=00110011B [y]补=11001100B, 则[x]补-[y]补= ,运行结果状态标志ZF= ,SF= ,OF= • 设x=-46,y=117,则[x+y]补和[x-y]补分别等于( )

  4. 第二章 • EU和BIU • BIU负责所有的外部操作(信息传送)。 • EU负责执行指令。 • 启动和程序执行过程 • 总线周期 1、Intel 8086 响应HOLD 请求是在( ) A.每一个指令周期后 B.每一个机器周期后 C.可以响应总线请求的总线周期后 D.T1 状态以后

  5. 第三章 • 最大和最小工作模式 • 不同模式下的CPU引脚 1、最小模式下,原8086 微处理器最大模式下S2, S1, S0 引脚应改为( )。 A.M/ IO、DEN、DT/ R B.DT/ R、M/ IO、DEN C.M/ IO、DT/ R、DEN D.DEN、M/ IO、DT/ R 2、说明 8088CPU上TEST信号的作用。 • 一些芯片 • 8282(地址锁存器) • 8286(数据收发器) • 8284(时钟发生器) • 8288(总线控制器) • 8289(总线仲裁器)、 3、时钟发生器8284A 产生哪些信号?

  6. 第二章 • 寄存器结构、存储器组织、I/O端口 1、状态标志寄存器中T标志的作用 • 堆栈(P41 P63) • 时序分析 2、8086/8088 读总线周期中T1~T4 期间,( )信号一直保持有效。 A.RD B.DEN C.BHE/ S7 D.M/ IO

  7. 第三章 指令系统 • 寻址方式 • 8086指令系统 • 数据传送指令 • 算术运算指令 • 逻辑运算及移位指令 • 串操作指令 • 程序控制指令 • 标志操作和处理起器控制类指令

  8. 算术运算指令 • 加法指令:ADD、ADC、INC、AAA、DAA • 减法指令:SUB、SBB、DEC、AAS、DAS、CMP、NEG • 乘法指令:MUL、IMUL、AAM • 除法指令:DIV、IDIV、AAD、CBW、CWD • BCD码的运算(调整) • 有符号和无符号数运算的区别 • 运算对标志位的影响

  9. 练习 • 若AL=0100 1001B,执行ADD AL,AL指令后,再执行DAA指令,则 AL= ,CF= ,AF= 。 • IMUL BL 指令执行后,CF=OF=1,(AL)=82H,则表示() A.(BL)>0 B.(AH)=FF C.被乘数小于零 D.乘积大于128 • 在CMP AX,DX指令执行后,当标志位SF,OF,ZF满足下列逻辑关系(SF+OF)+ZF=0时,表明 A.(AX)>(DX) B.(AX)≥(DX) C.(AX)<(DX) D.(AX)≤(DX)

  10. 算术运算指令小结 • 加、减法的运算结果与两个操作数的长度相等,进、借位反映在标志位上。 • 乘、除法运算仅由指令指定一个操作数,另一个操作数固定为累加器AX。 • 除了除法和符号扩展指令外,其它算术运算指令均影响状态标志,不同指令对标志位的影响也各不相同。 • 允许使用BCD码进行算术运算。为了得到正确的BCD码运算结果,应使用相应的十进制调整指令。 • 所有的十进制调整均对累加器进行。加、减、乘法的调整在运算之后进行,只有除法必须先调整,后运算。

  11. 逻辑运算及移位指令 • 逻辑运算指令:AND、TEST、OR、XOR、NOT • 算术移位指令:SAL、SAR • 逻辑移位指令:SHL、SHR • 不带进位的循环移位指令:ROL、ROR • 带进位的循环移位指令:RCL、RCR

  12. 逻辑运算及移位指令 • AND、TEST、OR、XOR指令对标志位的影响:固定使CF=OF=0;根据运算结果改变SF、ZF、PF;AF无定义。 • NOT指令形式上只有一个操作数;不影响任何标志位。 • SAL、SAR、SHL、SHR指令的使用方法相同,对标志位的影响也相同:移出位给CF;根据结果改变SF、ZF、PF;当移位次数为1时,影响OF;AF无定义。 • ROL、ROR、RCL、RCR的使用方法相同,对标志位的影响相同:移出位给CF;当移位次数为1时,影响OF。不影响其它标志位。 • 使用SHR或SAR每移1位,可视为分别将无符号数和带符号数除以2;使用SHL/SAL每移1位,可视为将数值(无符号数)乘以2。

  13. 串操作指令 • 串传送指令MOVS、MOVSB、MOVSW • 串比较指令CMPS、CMPSB、CPMSW • 串检索指令SCAS、SCASB、SCASW • 串装入指令LODS、LODSB、LODSW • 串存储指令STOS、STOSB、STOSW • 串操作指令重复前缀REP、REPZ/REPE、REPNZ/REPNE

  14. 程序控制指令 • 无条件转移指令JMP • 条件转移指令:JC/JB/JNAE、JNC/JNB/JAE、JS、JNS、JZ/JE、JNZ/JNE、JO、JNO、JP/JPE、JNP/JPO、JA/JNBE、JAE/JNB、JB/JNAE、JBE/JNA、JG/JNLE、JGE/JNL、JL/JNGE、JLE/JNG • 循环控制指令 LOOP、LOOPZ/LOOPE、LOOPNZ/LOOPNE、JCXZ • 子程序调用及返回指令CALL、RET • 中断及中断返回指令INT、IRET

  15. 根据单个标志进行判断转移的指令 标志位=1则转移: 标志位=0 则转移: JS JZ/JE JP/JPE JC JO JNS JNZ/JNE JNP/JPO JNC JNO

  16. 判断无符号数大小的指令 JA/JNBE ;目操作数A > 源操作数B JAE/JNB/JC;目操作数A≥ 源操作数B JB/JNAE/JNC;目操作数A< 源操作数B JBE/JNA ;目操作数A≤ 源操作数B 通常用在CMP指令之后;由指令自动选择不同标志位,进行不同条件的判断。

  17. 判断带符号数大小的指令 JG/JNLE ;目操作数A>源操作数B JGE/JNL ;目操作数A≥ 源操作数B JL/JNGE ;目操作数A< 源操作数B JLE/JNG ;目操作数A≤ 源操作数B 通常用在CMP指令之后;由指令自动选择不同的标志位和判断条件。与无符号数不同!

  18. CALL指令执行的操作 与JMP的不同之处:有对应的返回指令;必须保存断点,执行过程与堆栈有关。

  19. IP、CS、Flags依次出栈 中断返回: 中断及中断返回指令 • 中断调用指令:INT n ;n —中段类型码 中断返回指令:IRET • 功能:实现对n号中断的服务程序的调用及返回。 • 执行过程: 取中断向量赋给CS:IP 中断调用过程: Flags、CS、IP依次入栈 用n×4索引中断向量表 执行中断处理程序 IF=0,TF=0 关闭中断 返回 断点处

  20. 第四章 汇编语言程序设计 • 伪指令 • 宏汇编程序的格式 • 数据段的定义及其相应的内存分布 • 注意:宏汇编中标号和变量的使用 LOCAL伪指令 • 变量和标号都有三个属性:段属性(SEG)、偏移属性(OFFSET)和类型属性( TYPE) • 三种常见的程序结构 • 几类重要的编程问题 • 子程序的编写 • DOS中断调用

  21. 20H 30H 30H 20H 41H 42H 42H 41H 数据段的定义及相应的内存分配 DATA SEGMENT ARE1 DB 20H,30H ARE2 DW 2030H ARE3 DB ‘AB’ ARE4 DW ‘AB’ DATA ENDS ARE1 ARE2 ARE3 ARE4

  22. BX= 7000H BL= 00H BX= 0106H SI= 0006H [例2]已知数据段定义如下: DATA SEGMENT ORG 100H A DW 50H, 70H, -70H B DB ‘ABCDE’ DATA ENDS 问执行下列指令后有关寄存器的内容是多少? (1)MOV BX, A+1 ; (2)MOV BL, A+1 ; (4)MOV BX, offset B ; (5)MOV SI, B-A ;

  23. 几类重要的编程问题 • 多字节数的运算 • 码制转换

  24. 多字节数的运算 • 两个多字节二进制数的运算(只需要掌握加减运算。注意,对加减运算不用区分有符号数或无符号数) • 两个多字节BCD码的运算(加减) • 多个单字节二进制数(有符号数或无符号数)的运算(相加) • 多个单字节BCD码(组合或非组合)的运算(相加)

  25. 开 始 循环初始化: 令SI指向无符号数NUM1的最低单元; 令DI指向无符号数NUM2的最低单元; 令BX指向结果单元SUM的最低单元; 循环次数寄存器(CX)<=运算数据的字长度; 无符号字加法:(BX) (SI)+(DI) 修改指针:(SI),(DI), (BX)加2 循环次数减:(CX) <=(CX)-1 N (CX) =0? Y 结 束 [例] 设有两长为8字节无符号数分别存在以NUM1、NUM2为首址的连续内存单元中,将两数相加,结果存入SUM内存单元。

  26. 码制转换程序 • BCD码  二进制数 • BCD码二进制数 算法:各位BCD码  权重并相加二进制数 • 二进制数 BCD码 算法:二进制数不断地除10,其余数为BCD码各位上的值 • BCD码  ASCII码 • ASCII码  非组合BCD码 算法1:ASCII码 - 30H  非组合BCD码(SUB ASCII, 30H) 算法2:将ASCII码高4位清0  非组合BCD码(AND ASCII, 0FH) • 非组合BCD码 ASCII码 算法1:非组合BCD码 + 30H  ASCII码 (ADD ASCII, 30H) 算法2:将非组合BCD码高4位置为0011  ASCII码(OR BCD, 30H)

  27. 码制转换 • 二进制数  ASCII码 (用于数的输出) • 二进制数  十进制形式的ASCII码 算法:二进制数  BCD码  ASCII码 • 十进制数ASCII码  二进制数 算法:十进制数ASCII码  BCD码  二进制数

  28. [例] 根据要求,完成下面的子程序。 BCD2BIN PROC NEAR ;功能:将一个字节的组合BCD码转换为二进制数 ;入口参数:AL-待转换组合BCD码 ;出口参数:转换的二进制数存入AL并返回

More Related