习题3-8086指令系统
- 格式:doc
- 大小:94.00 KB
- 文档页数:5
微机原理及应⽤(陈继红、徐晨)课后习题答案微机原理及应⽤(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址⽅式习题答案(部分)3.1总结计算机中⼗进制、⼆进制、⼋进制及⼗六进制数的书写形式。
123D、0AFH、77Q、1001110B分别表⽰什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表⽰⼗进制、⼗六进制、⼋进制、⼆进制。
3.2字长为8位、16位⼆进制数的原码、补码表⽰的最⼤数和最⼩数分别是什么?答案:8位原码表⽰的最⼤数:(27-1)、8位补码表⽰的最⼤数:(27-1)、8位原码表⽰的最⼩数:-(27-1)、8位补码表⽰的最⼩数-27。
16最⼩数:-215。
3.3答案:7DH。
(2)255(3)7248H。
(4)509013E2H。
3.4答案:240D0F0H。
128D80H。
(3)11111111⼗进制数:255D;⼗六进制数:0FFH。
(4)01010101⼗进制数:85D;⼗六进制数:55H。
3.5把下列⽆符号⼗六进制数分别转换为⼗进制数和⼆进制数。
(1)FF(2)ABCD(3)123(4)FFFF答案:(1)FF⼗进制数:255D;⼆进制数;11111111B。
1010101111001101B。
(3)123⼗进制数:291D;⼆进制数;000100100011B。
(4)FFFF⼗进制数:65535D;⼆进制数;1111111111111111B。
3.6分别⽤8位⼆进制数和16位⼆进制数写出下列⼗进制数的原码和补码。
(1)16(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9 答案:(1)16800010000(2)-16800010000(3)+0800000000(4)-0800000000(5)127801111111(6)-128810000000(7)1218:01111001;16位⼆进制数原码:0000000001111001补码:0000000001111001。
汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
交通信息与控制工程系教案(理论教学用)课程名称微机原理与接口技术第 8 次第 4 周 2 学时上课教室WM1310 课程类型专业基础课授课对象自动化专业章节名称第三章寻址方式和指令系统(3.3)教学目的和要求1.掌握8086的基本指令,如逻辑运算和移位指令、串操作指令、程序控制指令等。
讲授主要内容及时间分配1.逻辑运算和移位指令;(35min)2.串操作指令;(20min)3.程序控制指令;(25min)4.处理器控制指令。
(10min)教学重点与难点重点:1.逻辑运算和移位指令的基本功能和格式;2.串操作指令的基本功能和格式;3.程序控制指令的基本功能和格式。
难点:逻辑运算和移位指令的基本功能和格式。
要求掌握知识点和分析方法1.逻辑运算和移位指令的格式、功能及应用方法;2.串操作指令的格式、功能及应用方法;3.程序控制指令的格式、功能及应用方法。
启发与提问1.逻辑移位和算术移位指令的区别?教学手段多媒体+板书作业布置思考题:1.远跳转和近跳转的区别?3.2, 3.53.9, 3.113.12, 3.14主要参考资料备注讲授内容三、逻辑运算和移位类1.逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。
逻辑运算是按位操作的,它包括AND(与)、OR (或)、NOT(非)、XOR(异或)和TEST(测试)指令。
除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,AF位无定义,SF、ZF和PF 根据运算结果设置。
“与”运算指令格式:AND OPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。
【例】要屏蔽AL中的高4位。
AND AL,00001111B【例】AND AL,AL此指令执行前后,(AL)无变化,但执行后使标志位发生了变化,即CF=0,OF=0。
“或”运算指令格式:OR OPRD1,OPRD2操作:两操作数相“或”,结果送目标地址【例】(AL)=0FH,OR AL,10000000B(AL)=8FH【例】OR AL,AL指令执行前后,(AL)不变,但执行后标志位发生了变化,即CF=0,OF=0。
第二章 8086 体系结构与80x86CPU1.8086CPU 由哪两部份构成?它们的主要功能是什么?答:8086CPU 由两部份组成:指令执行部件<EU,Execution Unit>和总线接口部件<BIU,Bus Interface Unit>。
指令执行部件〔EU 主要由算术逻辑运算单元<ALU>、标志寄存器F R、通用寄存器组和E U 控制器等4个部件组成,其主要功能是执行指令。
总线接口部件<BIU>主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或者I/O 端口读取操作数参加E U 运算或者存放运算结果等。
2.8086CPU 预取指令队列有什么好处? 8086CPU 内部的并行操作体现在哪里?答: 8086CPU 的预取指令队列由6个字节组成,按照8086CPU 的设计要求, 指令执行部件〔EU 在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在C PU 内部,EU 从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086 系统中物理地址的形成过程。
8086 系统中的物理地址最多有多少个?逻辑地址呢?答: 8086 系统中的物理地址是由20 根地址总线形成的。
8086 系统采用分段并附以地址偏移量办法形成20 位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部份构成,都是16 位二进制数。
通过一个20 位的地址加法器将这两个地址相加形成物理地址。
具体做法是16 位的段基址左移4位<相当于在段基址最低位后添4个"0">,然后与偏移地址相加获得物理地址。
课后习题三(第三、六、八、九章)1、CPU是指( B )A. 控制器B. 运算器和控制器C. 运算器、控制器和主存D. 运算器、控制器、主存和I/O2、指令系统中采用不同寻址方式的目的主要是( B )A. 可降低指令译码难度B. 缩短指令字长、扩大寻址空间、提高编程灵活性C. 实现程序控制D. 提高指令执行速度3、零地址运算指令在指令格式中不给出操作数地址,它的操作数来源自( C )A. 立即数和栈顶B. 暂存器C. 栈顶或隐含约定的位置D. 存储器4、单地址指令中,为完成两个数的算术运算,除地址译码指明的一个操作数外,另一个数常采用( C )A. 堆栈寻址方式B. 立即寻址方式C. 隐含寻址方式D. 基址寻址方式5、二地址指令中,操作数的物理位置安排,描述正确的是( C )A. 两个主存单元(且依然在现指令系统中采用)B. 栈顶和次栈顶C. 主存单元或寄存器D. 两个同时为寄存器不允许使用6、操作数在寄存器中的寻址方式称为( C )寻址A. 直接B. 立即C. 寄存器直接D. 寄存器间接7、寄存器间接寻址方式中,操作数在( C )A. 通用寄存器B. 堆栈C. 主存单元D. I/O外设中8、变址寻址方式中,操作数的有效地址是( C )A. 基址寄存器内容加上形式地址B. 程序计数器内容加上形式地址C. 变址寄存器内容加上形式地址D. 形式地址本身9、采用基址寻址可扩大寻址范围,且( B )A. 基址寄存器内容由用户确定,在程序执行过程中一般不可变B. 基址寄存器内容由操作系统确定,在程序执行过程中一般不可变C. 基址寄存器内容由用户确定,在程序执行过程中可随意变化D. 基址寄存器内容由操作系统确定,在程序执行过程可随意变化10、变址寻址和基址寻址的有效地址形成方式类似,但是( C )A. 变址寄存器内容在程序执行过程中是不可变的B. 在程序执行过程中,变址寄存器和基址寄存器的内容可以随意变化C. 在程序执行过程中,变址寄存器的内容可随意变化D. 以上均不对11、堆栈寻址中,设A为累加器,SP为栈顶指针,[SP]为其指向的栈顶单元,如果进栈的动作顺序是(SP)-1→SP,(A)→[SP],那么出栈的动作顺序是( A )A. [SP] →(A),(SP)+1→SPB. (SP)+1→SP,[SP] →(A)C. (SP)-1→SP,[SP] →(A)D. [SP] →(A),(SP)-1→SP12、设变址寄存器为X,形式地址为D,某机具有先变址再主存间址的寻址方式,则这种寻址方式的有效地址为( C )A. EA=(X)+DB. EA=(X)+(D)C. EA=((X)+D)D. EA=((X))+D13、设变址寄存器为X,形式地址为D,某机具有先主存间址再变址的寻址方式,则这种寻址方式的有效地址为( B )A. EA=(X)+DB. EA=(X)+(D)C. EA=((X)+D)D. EA=((X))+D14、运算型指令的寻址和转移类指令的寻址不同点在于( A )A. 前者取操作数,后者决定程序转移地址B. 前者计算转移地址,后者取操作数C. 前者是短指令,后者是长指令D. 前者是长指令,后者是短指令15、指令的寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现( C )A. 程序的条件转移B. 程序的无条件转移C. 程序的条件转移和无条件转移D. 以上均不对16、设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量(补码表示),若CPU每当从存储器取出一个字节时,即自动完成(PC)+1 PC。
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
微机原理第⼆版+⽥辉+课后答案答:2 =1048576=1MB 习题1-1.微型计算机包括哪⼏个主要组成部分,各部分的基本功能是什么?答:微型计算机由CPU、存储器、输⼊/输出接⼝及系统总线组成。
CPU是微型计算机的核⼼部件,⼀般具有下列功能:进⾏算术和逻辑运算。
暂存少量数据。
对指令译码并执⾏指令所规定的操作。
与存储器和外设进⾏数据交换的能⼒。
提供整个系统所需要的定时和控制信号。
响应其他部件发出的中断请求;总线是计算机系统各功能模块间传递信息的公共通道,⼀般由总线控制器、总线发送器、总线接收器以及⼀组导线组成;存储器是⽤来存储数据、程序的部件;I/O接⼝是微型计算机的重要组成部件,在CPU 和外设之间起适配作⽤。
1-2.CPU 执⾏指令的⼯作过程。
答:取指令、执⾏指令。
指令执⾏的基本过程:(1)开始执⾏程序时,程序计数器中保存第⼀条指令的地址,指明当前将要执⾏的指令存放在存储器的哪个单元。
(2)控制器:将程序计数器中的地址送⾄地址寄存器MAR,并发出读命令。
存储器根据此地址取出⼀条指令,经过数据总线进⼊指令寄存器IR。
(3)指令译码器译码,控制逻辑阵列发操作命令,执⾏指令操作码规定的操作。
(4)修改程序计数器的内容。
1-3.果微处理器的地址总线为20 位,它的最⼤寻址空间为多少?201-4.处理器、微型计算机和微型计算机系统之间有什么关系?答:微处理器是微型计算机的核⼼部件。
微处理器配上存储器、输⼊/输出接⼝及相应的外设构成完整的微型计算机。
以微型计算机为主体,配上系统软件和外部设备以后,就构成了完整的微型计算机系统。
1-5.下⾯⼗进制数分别转换为⼆进制、⼋进制和⼗六进制数:128,65535,1024答:128,⼆进制:10000000B,⼋进制:200O,⼗六进制:80H65535,⼆进制:1111111111111111B,⼋进制:177777O,⼗六进制:FFFFH1024,⼆进制:10000000000B,⼋进制:2000O,⼗六进制:400H1-6.下⾯⼆进制数分别转换为⼗进制及⼗六进制数:1011.1010B,1111101.11 B答:1011.1010B,⼗进制:11.625,⼗六进制:B.AH1111101.11B,⼗进制:125.75,⼗六进制:7D.CH1-7.(5487)10=(0101010010000111)BCD=1010101101111 B若 CPU 的主时钟频率为 10MHz ,则⼀个时钟周期为10 s ,⼀个基本总线周期为 4× 1-8.设字长为 8 位,请写出下列数的原码、反码、补码和移码:15,-20,-27/32 答:[+15]原 =00001111, [+15]反 =00001111, [+15]补 =00001111, [+15]移 =10001111[-20]原 =10010100, [-20]反 =11101011, [-20]补 =11101100, [-20]移 =01101100[-27/32]原 =1.1101100, [-27/32]反 =1.0010011, [-27/32]补 =1.0010100,第 2 章微型计算机系统的微处理器习题2-1.086/8088 CPU 的功能结构由哪两部分组成?它们的主要功能是什么?答:8086/8088 CPU 的功能结构由以下两部分组成:总线接⼝单元BIU (Bus Interface Unit ),执⾏部件EU (Execution Unit )。
第一章(下载后可查看)第二章1.8086/8088 CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088 CPU的地址总线共20位,最大可寻址1MB空间。
2.8086/8088 CPU分为哪两个部分?各部分主要由什么组成?答:8086/8088 CPU分为总线接口部件(BIU)和执行部件(EU)两个部分。
其中: BIU包括:4个16位的段地址寄存器(CS、DS、SS、ES);1个16位的指令指针寄存器IP;1个20位的地址加法器;指令队列寄存器;内部寄存器;输入输出总线控制逻辑;EU包括:4个16位的通用数据寄存器(AX、BX、CX、DX);4个16位的专用寄存器(BP、SP、SI、DI);1个16位的标志寄存器FR;4. 8086/8088 CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088 CPU中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI亦可作地址寄存器。
5.8086/8088 CPU中有哪些标志位?它们的含义和作用如何?答:8086/8088 CPU中共有9个标志位,其中DF、IF和TF为控制标志位,其余6个为状态标志位。
它们的含义和作用如下所示:CF(Carry Flag)进位标志:若算术运算的结果产生了进位或借位(对字节操作最高位是D7位;对字操作最高位是D15位),则CF=1,否则CF=0。
PF(Parity/Even Flag)奇偶标志:如果运算结果中含有偶数个1,则PF=1,否则PF=0。
此标志位主要用于数据通信中,检测数据传送有无出错。
AF(Auxiliary Carry Flag)辅助进位标志:用于反映一个字节(字的低字节)的低4位向高4位有无进位(借位)的情况,有进(借)位时,AF=1,否则AF=0。
第4章8086/8088CPU指令系统1.请指出以下各指令的源、目的操作数所使用的寻址方式。
(1)MOV SI,2100H (2)SBB DISP[BX],7 (3)AND [DI],AX (4)OR AX,[609EH] (5)MOV [BX+DI+30H],CX (6)PUSH ES:[BP](7)CALL [DI]DISP(8)JNZ Short_ label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址(7)只有一个操作数,为(带位移量的)变址寻址(8)只有一个操作数,为相对寻址2.请指出下列各条指令的错误,并改正。
(1)MOV DS,1000H(2)MOV [100],23H(3)ADD AX,[BX+BP+6] (4)PUSH DL(5)IN AX,[3FH](6)OUT 3FFH,AL(7)LES SS,[SI](8)POP [AX](9)IMUL 4CH (10)SHL BX,5(11)INT 300(12)XCHG DX,0FFFH (13)MOV AH,BX(14)MOV [BX],ES:AX (15)MOV AX,OFFSET [SI] (16)MOV CS,AX(17)MOV DS,ES答:(1)不允许直接向段寄存器送立即数,可改为:MOV AX,1000HMOV DS,AX(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR或WORD PTR说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOV BYTE PTR [100],23H(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADD AX,[BX+DI+6](4)堆栈操作应以字为单位进行,而DL是一个字节。
习题三8086指令系统主要内容:8086指令系统。
主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。
1.单选题:(1)执行下面指令序列后,结果是(A)。
MOV AL,82HCBWA、(AX)=0FF82HB、(AX)=8082HC、(AX)=0082HD、(AX)=0F82H(2)与MOV BX,OFFSET VAR指令完全等效的指令是(D )。
A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。
A、CMPB、SUBC、ANDD、MOV(4)下面指令执行后,改变AL寄存器内容的指令是(D )。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BD、AND AL,BL(5)设DH=10H,执行NEG DH指令后,正确的结果是(D )。
A、(DH)=10H,CF=1B、(DH)=0F0H,CF=0C、(DH)=10H,CF=0D、(DH=0F0H,CF=1(6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A )。
A、85B92HB、86192HC、BB690HD、12169H(7)下列指令中,执行速度最快的是(C )。
A、MOV AX,100B、MOV AX,[BX]C、MOV AX,BXD、MOV AX,[BX+BP]2.8086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。
(1)MOV AL,0110 0100BSUB AL,58H ;(AL)=0CH,AF=1DAS ;(AL)=06H, AF=1ADD AL,89H ;(AL)=8FH, AF=0DAA ;(AL)=95H,AF=1,SF=1结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0(2)MOV AL,05HMOV BL,09HMUL BL ;(AX)=002DH, SF、AF、CF、OF=0AAA ; (AX)=0103H;AAM ; ; (AX)=0405H结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=03.分析执行下列指令序列后的结果:MOV AL,10110101BAND AL,00011111B ;(AL)=0001 0101BOR AL,11000000B ;(AL)=1101 0101BXOR AL,00001111B ;(AL)=1101 1010BNOT AL ;(AL)=0010 0101B4.假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF的值。
(1)SHL AL,CL ;(AL)=1011 1100B, CF=0、ZF=0、OF=1(2)SHR AL,CL ;(AL)=0010 1011B, CF=1、ZF=0、OF=0(3)SAR AL,CL ;(AL)=1110 1011B, CF=1、ZF=0、OF=0(4)ROL AL,CL ;(AL)=1011 1110B, CF=0、ZF=0、OF=1(5)RCR AL,CL ;(AL)=1011 1101B, CF=0、ZF=0、OF=15.设(IP)= 3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL 2000:0094H后,试求出IP、CS、SP的内容,以及栈顶4个单元的内容。
【答】(CS)=2000H,(IP)=0094H, 栈顶F178H~F17BH连续4个单元的内容:94, 3D,50,40。
6.设(DS)= 2000H,(BX)=1256H,(SI)=528FH,TABLE的偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,执行下述指令后IP的内容?(1)JMP BX ;(IP)=1256H(2)JMP TABLE[BX]; (IP)=3280H(3)JMP [BX][SI] ;(IP)=2450H7.设当前的SP=1000H,执行PUSHF指令后,SP=(0FFEH),若改为执行INT 20H指令后,则SP=(0FFCH)。
8.设当前(SS)=2010H,(SP)=FE00H,(BX)=3457H,计算当前栈顶的物理地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?【答】当前栈顶指针(SP)=2FF00H,物理地址=20100H+FE00H=2FF00H当执行PUSH BX 指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址=2FDFEH,栈顶2个字节的内容分别3457H。
9.HLT指令用在什么场合?如CPU 在执行HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令?【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。
在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。
10.为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?【答】増量指令或减量指令不影响进位标志CF。
11.中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减2。
中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断入口地址的偏移地址。
12.中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容什么不同?【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。
13.以下是格雷码的编码表:0——0000,1——0001,2——0011,3——0010,4——01105——0111,6——0101,7——0100,8——1100,9——1101请用换码指令和其它指令设计一个程序段,实现格雷码往ASCII码的转换。
【答】TABLE SEGMENTTAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0DB 0,0,38H,39HGRA DB 05HASCII_DA DB ?TABLE ENDSCODE SEGMENTASSUME CS:CODE,DS:TABLESTART: MOV AX,TABLEMOV DS,AXMOV BX,OFFSET TAB_DAMOV AL,GRAXLATMOV ASCII_DA,ALCODE ENDSEND S TART14.将存放在0A00H单元和0A02H单元的两个无符号数字节相乘,结果存放在地址为0A04H开始的单元中。
【答】参考程序:假设数据为字节MOV AL,[0A00H]MOV BL,[0A02H]MUL BLMOV [0A04],AX15.编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。
【答】参考程序:MOV AX,XADD AX,YMOV BX,0AHMUL BX ;乘积在DX,AX中ADD AX,ZADC DX,0H ; 考虑进位MOV BX,XDIV BX ;MOV RESULT, AXMOV RESULT+2, DXHLT16.分别用一条语句实现下述指明的功能:(1)AX的内容加1,要求不影响CF。
(INC AX)(2)BX的内容加1,要求影响所有标志位。
(ADD BX, 1)(3)栈顶内容弹出送DI。
(POP DI )(4)双字变量AYD存放的地址指针送ES和SI。
(LES SI ,AYD )(5)将AX中数,最高位保持不变,其余全部右移4位。
( SAR AX, CL ;CL预置4)(6)将0400H单元中的数,低4位置零,高4位保持不变。
( AND BYTE PTR [0400H], 11110000B) (7)将BX中的数,对高位字节求反,低位字节保持不变。
(XOR BX ,0FF00H)(8)若操作结果为零转向标号GOON。
(JZ GOON )17.检测BX中第13位(D13),为0时,把AL置0,为1时,把AL置1。
【答】参考程序:TEST BX,0010 0000 0000 0000BJZ ZEROMOV AL,01HHLTZERO: MOV AL,0HLT18.利用字串操作指令,将1000H~10FFH单元全部清零。
【答】参考程序:CLDMOV DI,1000HMOV CX,100HMOV AL,0REP STOSB19.用串操作指令实现,先将100H个字节数从2170H单元处搬到1000H单元处,然后从中检索等于AL 中字符的单元,并将此单元换成空格字符。
【答】参考程序:假设数据段与附加段的段寄存器值已经设置为相同的数值。
CLDMOV CX,0100HMOV SI, 2170HMOV DI,1000HREP MOVSBMOV CX,0100HMOV DI,1000HMOV AL, ‘A’;假设要检索的字符为AREPNZ SCASBJZ FOUNDJMP NOFOUNDFOUND: DEC DIMOV BYTE PTR [DI],‘’NOFOUND: HLT20.用循环控制指令实现,从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H),把存放第一个#的单元地址送入BX中。
【答】参考程序:MOV DI,1000HMOV CX,200MOV AL,‘#’DON: CMP AL, [DI]JE FOUNDINC DILOOP DONJMP NOFOUNDFOUND: MOV BX,DINOFOUND: HLT自测题:1下列指令中,有语法错误的指令是()。
A、MOV BX,[BX+2]B、MOV 2,BXC、MOV [1000H],BXD、MOV BX,22下列指令中,隐含使用AL寄存器的指令有()条。
MUL、DIV、HLT、XLAT、CBW、IN、PUSHFA、2条B、3条C、4条D、5条3输入输出指令中,数据寄存器由()寄存器指出。
A、AL/AXB、BXC、CXD、DX48088可直接寻址的空间最大为()。
A、640KBB、1MBC、512MBD、2MB5. 内存单元1999H:0010H的段内偏移地址为(2),物理地址为(3);若(BP)=0010H,用指令MOV AL,[BP]取出该单元的内容,段寄存器(4)的值应为1999H。