8086指令系统测试
ch3-3 8086指令系统(算术运算与逻辑运算)

AH为高8位,AL为低8位。
AL (8位)
s (8位)
AH AL (16位)
第三章 8086/8088 指令系统
b. 16位乘法 AL×OPRD AX DX为高16位,AX为低16位。
AX (16位)
s (16位)
DX AX (32位)
第三章 8086/8088 指令系统
• 该指令可以得到负数的绝对值。 • 执行该指令后一般都会使得CF为1
第三章 8086/8088 指令系统
(5) 比较指令 CMP d, s
功能:作一次减法运算d–s,但不送结果,
只根据结果设置标志位。 比较指令往往用于判断两数是否相 等,或两数大小关系。若相等,则零标 志ZF=1。
第三章 8086/8088 指令系统
01110011 00110111 相减
00111100 00000110 调整
00110110
最后结果 AL = 00110110B(代表36),CF=0
第三章 8086/8088 指令系统
(5) AAM 功能:对未组合型BCD的乘法结果进行调整。 例: MOV AL, 00001000B (代表8) MOV BL, 00001001B (代表9) MUL BL AAM
否则不作调整。
第三章 8086/8088 指令系统
例: MOV AH, 0 MOV AL, 00000110B ADD AL, 00000111B
AAA
;代表6 ;代表7
00000110 6 + 00000111 7
00001101 调整 + 00000110
00010011
清0
00000011 AL 00000000+1=00000001AH
《微型计算机系统》考试试卷

安徽大学江淮学院2013—2014学年第 1 学期《微机原理及应用》期中考试试卷(闭卷时间100分钟)院/系计算机科学与电子技术年级11级专业电子信息工程()姓名学号一、填空题(每小题1分,共20分)1、已知X、Y的真值分别为56D和-21D,[X+Y]补码为__________________(用二进制表示)。
2、8086CPU的外部数据总线有_______位,其内部的BIU和EU分开,所以______________和_____________可以重叠操作,提高了CPU的利用率。
3、若CS=7000H,则当前代码段可寻址的存储空间范围是从_________H 到__________H。
4、设堆栈指针SP的初值为2300H,AX=50ABH,BX=1234H,依次执行指令PUSH AX、PUSH BX及POP AX之后,SP=---________________,AX=______________。
5、8086的存储器读/写总线周期由__________个T状态组成,ALE信号在__________状态内有效,其作用是__________________________________________。
6、RESET信号有效后使、、、、寄存器清零。
7、总线保持请求/总线保持响应是、。
8、已知AL=7BH,BL=38H,若执行ADD AL,BL后,CF=_____,OF=_____,PF=______。
二、单项选择题(在备选答案中选出一个正确答案,并将其号码填在题后的表中。
1、运算器的主要功能是( )。
(A)算术运算(B)逻辑运算(C)算术运算与逻辑运算(D)函数运算2、下列有关指令指针寄存器的说法中,哪一个是正确的( )。
(A)IP存放当前正在执行的指令在代码段中的偏移地址(B)IP存放下一条将要执行的指令在代码段中的偏移地址(C)IP存放当前正在执行的指令在存储器中的物理地址(D)IP存放当前正在执行的指令在存储器中的段地址3、若用MB作为PC机主存容量的计量单位,1MB等于( )字节。
实验报告——找出80868088指令系统所有指令的操作码的编码

实验二找出8086/8088指令系统所有指令的操作码的编码一、实验目的本实验旨在利用debug工具的e和u功能找出8086/8088指令系统的指令格式中各种操作码编码对应的指令功能。
二、试验原理:1、每条指令1~6个字节不等2、指令的第一字节为操作码,规定指令的操作类型。
第二字节规定操作数的寻址方式接着以后的3~6 字节依据指令的不同取舍。
3、第一个字节的八个二进制位中前六位为操作码的主要部分,之后一位是D字段,然后是W字段,W指出操作数类型:W=0 为字节,W=1 为字,D指出操作数的传送方向:D=0 寄存器操作数为源操作数,D=1 寄存器操作数为目标操作数。
4、用DOS的输入/输出重定向功能,让debug自动执行一批命令。
三、试验内容和步骤1、用试探法(1)打开debug,输入如下内容:-e 100 00 00 00 00 00 00-u 100 1050B5D:0100 0000 ADD [BX+SI],AL0B5D:0102 0000 ADD [BX+SI],AL0B5D:0104 0000 ADD [BX+SI],AL可以得到如下结果:结论:操作码字节前六位为000000(二进制)看来是一条ADD指令,而且只占两个字节。
记下来:指令码汇编指令---------------------------------------------------------------------0B5D:0100 0000 ADD [BX+SI],AL(2)将指令首字节变为01,重复以上实验-e 100 01 00-u 100 1010B5D:0100 0100 ADD [BX+SI],AX得到以下结果:结论:第1字节由00(二进制0000 0000)变为01(二进制0000 0001),ADD指令的第二个操作数由AL变为了AX。
AL为8位寄存器、AX为16位寄存器,印证了W字段的作用,增加一条有用的记录:指令码汇编指令-------------------------------------------------------------------------0B5D:0100 0000 ADD [BX+SI],AL0B5D:0100 0100 ADD [BX+SI],AX(3)将指令首字节变为02,重复以上实验-e 100 02 00-u 100 1010B5D:0100 0200 ADD AL,[BX+SI]得到以下结果:结论:第1字节由00(二进制0000 0000)变为02(二进制0000 0010),ADD 操作的传送方向发生转变,印证了D字段的作用。
第5章 8086的指令系统

图5.4
例5.16的执行情况
寄存器相对寻址可用于表格处理或访问一维数组中的元
素。把表格的首地址设置为位移量,利用修改间接寄存器的值
来存取表格中的任意一个元素。 表5.2列举了一些寄存器相对寻址方式所用的示例。
表5.2 寄存器相对寻址示例
指 令 二进制 位数 功 能 说 明 将 ES 附加段有效地址为 DI 加上 64H 中字的内容送入 AX 寄存器中 将数据段有效地址为 SI 加上偏移量中字节的内容送入 CL 寄存器中 将数据段有效地址为 EAX 加上 0AH 中字的内容送入 DI 寄存器中 将数据段有效地址为 EBX 加上偏移量中双字的内容送入 EAX 寄存器中
图5.2
例5.5的执行情况
【例5.8 】 MOV AX, 系统默认为 数据段)
这种寻址方法是以数据段的地址为基础,可在多达64KB 的范围内寻找操作数。 ② 8086中允许段超越(除默认的数据段DS以外),即允许 操作数在以代码段、堆栈段或附加段为基准的区域中。
寄存器寻址使用的寄存器类型要匹配,8位和16位,16
位和32位及8位和32位寄存器是决不能混用的。有些指令可 除外,如:SHL AX,CL。详细在后面讲。
除上述两种寻址方式外,以下各种寻址方式的操作数 均在代码段以外的存储区中,寻址方式通过不同的途径求 得操作数的偏移地址,即有效地址EA ( Effective Address)。 3.直接寻址(Direct Addressing)
第5章
INTEL 8080/8088 指令系统
5.1 概述
5.2 8086/8088的寻址方式
5.3 指令格式 5.4 8086 /8088指令系统 习题与思考题
5.1 概
述(p70)
48086CPU指令系统

XCHG DS,ES XCHG AX,DS XCHG DS,[ BX ] • 不能使用双存储器 XCHG [ BX ],[ SI ] • 不能使用立即数 XCHG AX,2000H XCHG 20H,BL
《例》用 MOV、PUSH,POP、XCHG 指令 完成两寄存器AX、BX 中数据的交换
• 指令格式
•
指令功能
OPR1、OPR2 两个操作数间交换数据
数据传送类指令
XCHG指令的应用范围
• 通用寄存器与通用寄存器间交换数据
XCHG AX,BX XCHG DL,CH • 通用寄存器与存储器间交换数据 XCHG AX,[ BX ] XCHG [ SI ],AL
数据传送类指令
XCHG指令的 禁用情况
通用传送指令 PUSH、POP 中 src、dst 操作数的使用
• 为通用寄存器、段寄存器操作数
PUSH AX、PUSH ES POP DS、 POP BX • 为存储器操作数 PUSH [ 2000H ]、PUSH [ BX ] POP [ BX ]、 POP [ 1000H ]
通用传送指令PUSH、POP中 src、dst 操作数的禁用
数据传送类指令
指令 LEA 与 LDS,LES 的区别
• LEA src
scr 表示存储器地址本身
• LDS r,src
LES r,src src 表示存储器地址中的值
地址传送指令的比较
已知:DS=09A0H,BX= 0048H
LEA DI,[BX] → 执行后:DI=0048H 等价于 MOV DI,OFFSET [BX] LDS DI,[BX] → 执行后:DI=003EH DS=0816H LES DI,[BX] → 执行后:DI=003EH ES=0816H Memory
实验三 8086 常用指令练习

实验名称实验三 8086 常用指令练习一、实验目的1、通过实验掌握常用数据传送指令、算术运算指令。
2、MOV、XCHG、ADD、ADC、SUB、SBB等常用指令的使用。
二、实验要求1、16进制数加减法手算结果及实验结果。
2、8086 常用指令练习部分的逐条运行记录,思考结果及自编程序运行记录。
三、实验环境DOS操作系统。
四、实验内容1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX图1在内存100处键入指令2)用U命令检查键入的程序并记录,特别注意左边的机器码。
图2用U命令检查键入3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
图3 T命令逐条运行图4 T命令逐条运行图5 T命令逐条运行2、加减法指令:1)用A命令在内存200H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX图6在内存200处键入指令3)用U命令检查键入的程序及对应的机器码。
图7用U命令检查键入4)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF 情况。
图8 T命令逐条运行图9 T命令逐条运行图10 T命令逐条运行ZF无变化思考:这次运行还是打入T,行不行?怎么办?用R命令检查一下IP的内容。
注意T命令与IP的关系。
3、带进位加减法:1)用A命令在内存300H处键入下列内容,并用U命令检查:MOV AH,12MOV AL,84MOV CH,56MOV CL,78ADD AL,CLADC AH,CHMOV DH,A7MOV DL,58SUB DL,7FSBB DH,34图11在内存300处键入指令图12用U命令检查键入2)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。
微机原理 期末考试题库及答案(含3套试卷)

微型计算机原理与接口技术综合测试题一一、单项选择题 (下面题只有一个答案是正确的,选择正确答案填入空白处)1.8086CPU通过(1 )控制线来区分是存储器访问,还是I/O访问,当CPU执行IN AL,DX指令时,该信号线为( 2 )电平。
(1) A. M/ B. C. ALE D. N/(2) A. 高 B. 低 C. ECL D. CMOS2.n+1位有符号数x的补码表示范围为()。
A. -2n < x < 2nB. -2n ≤ x ≤ 2n -1C. -2n -1 ≤ x ≤ 2n-1D. -2n < x ≤ 2n3.若要使寄存器AL中的高4位不变,低4位为0,所用指令为()。
A. AND AL, 0FHB. AND AL, 0FOHC. OR AL, 0FHD. OR AL 0FOH4.下列MOV指令中,不正确的指令是()。
A. MOV AX, BXB. MOV AX, [BX]C. MOV AX, CXD. MOV AX, [CX]5.中断指令INT 17H的中断服务程序的入口地址放在中断向量表地址()开始的4个存贮单元内。
A. 00017HB. 00068HC. 0005CHD. 0005EH6.条件转移指令JNE的条件是()。
A. CF=0B. CF=1C. ZF=0D. ZF=17. 在8086/8088 CPU中,一个最基本的总线读写周期由(1 )时钟周期(T状态)组成,在T1状态,CPU往总线上发( 2 )信息。
⑴ A. 1个 B. 2个 C. 4个 D. 6个⑵ A. 数据 B . 地址 C. 状态 D. 其它8. 8086有两种工作模式, 最小模式的特点是( 1 ),最大模式的特点是( 2 )。
⑴ A. CPU提供全部控制信号 B. 由编程进行模式设定C. 不需要8286收发器D. 需要总线控制器8288⑵ A. M/ 引脚可直接引用 B. 由编程进行模式设定C. 需要总线控制器8288D. 适用于单一处理机系统9.在8086微机系统的RAM 存储单元器0000H:002CH开始依次存放23H,0FFH,00H,和0F0H四个字节,该向量对应的中断号是( )。
8086微处理器-指令系统思维导图,脑图

8086微处理器指令系统数据传送数据传送指令可完成寄存器与寄存器之间、寄存器与存储器之间以及寄存器与I/O 端口之间的字节或字传送,它们共同的特点是不影响标志寄存器的内容通用数据传送指令MOV 传送指令格式: MOV 目标,源指令功能:将源操作数(一个字节或一个字)传送到目标操作数。
源操作数可以是8/16位通用寄存器、段寄存器、存储器中的某个字节/字或者是8/16 位的立即数。
堆栈操作指令后进先出的规则存取信息堆栈指针信息存入堆栈时,堆栈指针将自动减量,并将信息存入堆栈指针所指出的存储单元当需要从堆栈中取出信息时,也将从堆栈指针所指出的存储单元读出信息,并自动将堆栈指针增量堆栈指针始终指向堆栈中最后存入信息的那个单元栈顶不断移动、动端堆栈区的另一端则是固定不变的栈底PUSH 入栈指令格式: PUSH 源指令功能:将源操作数压入堆栈。
源操作数可以是16 位通用寄存器、段寄存器或者是存储器中的数据字。
P38 例 2.12POP 出栈指令格式: POP 目标指令功能:将堆栈中当前栈顶和次栈顶中的数据字弹出送到目标操作数。
目标操作数可以是16 位通用寄存器、段寄存器或者是存储单元。
P39 例 2.13XCHG 交换指令1格式: XCHG 目标,源指令功能:将源操作数与目标操作数(一个字节或一个字)相互交换位置。
源操作数可以是通用寄存器或存储单元。
目标操作数只允许是通用寄存器。
P39 例 2. 14XLAT 换码指令2目标地址传送指令这是一类专用于传送地址码的指令,可用来传送操作数的段地址或偏移地址LEA 有效地址送寄存器指令格式: LEA 目标,源指令功能:将源操作数的有效地址EA 传送到目标操作数。
源操作数必须是存储器操作数。
目标操作数必须是16位通用寄存器。
LDS 指针送寄存器和DS指令格式: LDS 目标,源指令功能:从源操作数所指定的存储单元中取出某变扯的地址指针(共4 个字节),将其前两个字节(即变量的偏移地址)传送到目标操作数,后两个字节(即变量的段地址)传送到DS 段寄存器中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086指令系统测试
说明:8086的指令系统测试题共有85条指令,测试的目的是让学生熟记指令且能运用指令完成指定任务,为第四章的程序设计打下基础。
最后,对本章中的寻址方式进行测试和考查。
一、请在每个括号内填入一条适当的指令,使之能完成该括号前的题目所
指定的任务。
(1空1分)
二、寻址方式测试,请指出下列指令中,源操作数的寻址方式,答案请写入括号中。
(每题2分)
1.MOV AX, 100H ;()
2.MOV AX, [100H] ;()
3.MOV AX, VAL ; ()(说
明:VAL是符号地址)
4.MOV AX, BX ;()
5.MOV AX, [BX] ;()
6.MOV AX, [BX+10H] ;()
7.MOV AX, [BX][SI] ;()
8.MOV AX, [BX][SI]COUNT ;()(说明:
COUNT是个偏移量)
9.IN AX, 0FFH ;()。