《微机原理与接口技术试题库(含复习资料).doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术试题库(含复习资料).doc(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本一、问答题1、以下字符表示成相应的码是多少?1换行 0 2字母“Q 51H 3空格 20H 2、以下各机器数所表示数的范围是多少? 18位二进制无符号定点整数;025528位二进制无符号定点小数;0.996094 316位二进制无符号定点整数;065535 4用补码表示的16位二进制有符号整数;-32768327673、(111)273,基数?164、有一个二进制小数01X2X3X4X5X6(1) 假设使X1/2,那么X1X6应满足什么条件? X1=1 假设使X1/8,那么X1X6应满足什么条件?X1 X2 X3=1(2)5、 有两个二进制数01101010,10001100,试比较它
2、们的大小。1X和Y两个数均为无符号数; XY2X和Y两个数均为有符号的补码数。 XY二、填空题1、对于R进制数来说,其基数能使用的数字符号个数是 R个 ,能使用的最小数字符号是 0 。1、 2、十进制数72转换成八进制数是 110Q 。3、与十进制数67等值的十六进制数是 43H 。1、 4、二进制数101.011转换成十进制数是 5.375 。2、 5、十六进制数0E12转换成二进制数是 。三、选择题1、在计算机内部,一切信息的存取、处理和传送都是以 D 形式进行的。A码 B码 C十六进制编码 D二进制编码2、与十进制数56等值的二进制数是 A 。A111000 B111001 C10111
3、1 D1101103、十进制数59转换成八进制数是 A 。A73Q B37Q C59Q D112Q4、与十进制数58.75等值的十六进制数是 B 。AA3 B)3 C)3A.23H D)C.35、二进制数1101.01转换成十进制数是 C 。A17.256 B)13.5 C)13.25 D)17.56、二进制数111010.11转换成十六进制数是 B 。A3 B3 C)3A3H D)3A.3H7、十六进制数18转换成二进制数是 D 。A110001011.11001 B)111101011.11101 C)111101011.11101 D)111001011.110118、将十六进制数.1转
4、换成十进制数是 C 。A255.625 B)2501625 C)255.0625 D)250.06259、十进制正数43的八位二进制原码 B 。A00110101 B00101011 C10110101 D1010101110、十进制正数38的八位二进制补码是 D 。A00011001 B10100110 C10011001 D00100110四、是非判断题1、在第三代计算机期间出现了操作系统。 2、对于种类不同的计算机,其机器指令系统都是相同的。 3、在计算机中,数据单位的意思是字节。 4、八进制数的基数为8,因此在八进制数中可以使用的数字符号是0、1、2、3、4、5、6、7、8。 5、在汉
5、字国标码2312-80的字符集中,共收集了6763个常用汉字。 答案:一、问答题1、10 251H 320H2、10255 20.996094 3065535 4-32768327673、164、1X1=1 2X1 X2 X3=15、1XY 2XY二、填空题3、 R个,04、 110Q5、 43H6、 5.3757、三、选择题1、D 2、A 3、A 4、B 5、C 6、B 7、D 8、C 9、B 10、D 四、是非判断题1、 2、 3、 4、 5、1. 微处理器,微型计算机和微型计算机系统三者之间有何区别?答:微处理器即,它包括运算器、控制器、存放器阵列和内部总线等局部,用于实现微型计算机的运
6、算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储器、接口电路以及总线构成;微型计算机系统那么包括硬件系统和软件系统两大局部,其中硬件系统又包括微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成局部,而微型计算机系统又主要由微型计算机作为其硬件构成。2. 在内部结构上由哪几局部构成?应具备哪些主要功能?答:在内部结构上由运算器、控制器、存放器阵列和内部总线等各局部构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。3. 累加器和其它通用存放器相比有何不同?答:累加器是通用存放器之一,但累加器和其它通用存放
7、器相比又有其独特之处。累加器除了可用做通用存放器存放数据外,对某些操作,一般操作前累加器用于存放一个操作数,操作后,累加器用于存放结果。 4. 微型计算机的总线有哪几类?总线结构的特点是什么?答:微型计算机的总线包括地址总线、数据总线和控制总线三类,总线结构的特点是结构简单、可靠性高、易于设计生产和维护,更主要的是便于扩充。 5. 举出10个微型计算机应用的例子。答:略6. 计算机接口有何用途?试列出8个接口。答:计算机接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。例如:串行通讯口口、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器
8、接口、音响设备接口、其它通用设备接口、等。7. 现在,计算机主板上一般都包括哪些接口?接口卡如何与主板相连?答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、接口等。象显示器适配器、网卡、卡等接口卡一般通过总线插槽与主板相连。8. 简述系统总线,总线,总线及总线的作用。答:系统总线是与存储器及桥接器之间传递信息的通道,总线专门用与连接与显示器适配器,总线一般用于连接一些高速外设接口作为高速外设与或内存交换信息的通道,而总线一般用于连接一些非高速外设接口作为非高速外设与或内存交换信息的通道。9. 试说明计算机用户,计算机软件,计算机硬件三者的相互关系
9、。答:计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在该系统中处于三个不同的层次。计算机用户处于最高层,计算机软件处于中间层,计算机硬件系统处于最下层。在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关系,指挥计算机硬件完成指定的任务。即,计算机用户使用程序设计语言编制应用程序,在系统软件的干预下使用硬件系统进行工作。10. 简述操作系统各局部的作用及相互关系。答:操作系统包括3个模块()、()、().模块对用户输入的命令行或应用程序行作出响应。即负责命令的解释和任务的分配,具体工作那么要靠模块所提供的系统功能完成。 模块尽管提供了许多的系统功能,但由于
10、执行每一个系统功能过程中,完全依赖各种设备实现指定的功能,因此,它还要进一步调用模块中的设备驱动程序才能工作。 模块对传送的请求进行解释,最终转换为对固化在中的设备控制程序的请求并由它们去控制硬件,完成指定的操作。11. 存储单元的选择由什么信号控制?读、写靠什么信号区分?答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作那么要靠读、写信号区分。12. 以一个可执行文件的运行为例,简述程序执行过程。答:当在提示符下键入一个可执行文件名称或在其它操作系统环境下执行有关操作后,操作系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件执行过程。首先将第一条指令从内
11、存取入中译码执行,同时指令指针自动加1或按指令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入译码执行,这样不断重复取指令和执行指令的过程,逐条执行指令,直至程序结束。1.把以下各数化成二进制数和八进制数(二进制取3位小数,八进制取一位小数): 7+34,364,73.5, 725.9375,25.34答:7+3/4=111.110B; 7+3/4=7.6O; 3/64=0.000B; 3/64=0.0O; 73.5=1001001.100B; 73.5=111.4O;725.9375=1011010101.111B; 725.9375=1325.7O; 25.34=11
12、001.011B; 25.34=31.3O2.把以下各数化成十进制数:101.10011B ,22.2O, .4H答:101.100115.59375; 22.218.25; .4173.253.完成以下二进制数运算:101.111+11.011,1001.10-110.01,101.11*11.01, 101110111/1101 答:101.111+11.011=1001.01; 1001.10-110.01=11.01; 101.11*11.01=10010.1011; 101110111/1101=11100.11 4.完成以下各十六进制数的运算: A3928,D575,2*4C,C1
13、63A答:A39287A; D575=58C6; 2*40B4; C16335525.先将15B*82A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进制数。答:15*82347*142/42=49274/42=1173.19=495.306.试分别判断以下各组数据中哪个数据最大?哪个数据最小? (1) 0.1001B,0.1001D,0.1001H (2) 10111101B,1001D,111H 答:(1) A最大, C最小; (2) B最大, A最小;1.写出以下各数的二进制原码和补码(最后两个用双字节): 0,96,-128,-38H,127,105,879H,-3276
14、8答:上述各数的原码依次为:00000000(10000000), 01100000, 无, 10111000, 01111111, 01101001, 11001, 无; 上述各数的补码依次为:00000000, 01100000, 10000000, 11001000, 01111111, 01101001, 11001, 10000;2.分别列出下述10进制数的16进制数、非压缩的数、压缩的数、数字串(用16进制形式写出):10, 64, 78, 81, 92, 100, 125, 255答:上述各数的16进制数依次为:,40H,4,51H,5,64H,7;上述各数的非压缩的数依次为:0
15、100H,0604H,0708H,0801H,0902H,010000H, 010205H,020505H; 上述各数的压缩的数依次为:10H,64H,78H,81H,92H,0100H,0125H,0255H;上述各数的数字串依次为:3130H,3634H,3738H,3831H,3932H,313030H,313235H, 323535H;3.用10进制数写出以下补码表示的机器数的真值:71H,1,80H,F8H,397,42H,9350H答:4.假设用一个字节来表示带符号数,判断以下各运算在机内进行时是否会产生溢出,写出判断过程。 A. 532H; B. -0815H; C. -51(-
16、3); D. 23答:A. 产生溢出, 501011011B其补码表示的机器数为:01011011 3200110010B其补码表示的机器数为:00110010 相加的结果为:10001101数值最高位向符号位进位,但符号位向前无进位,故产生溢出。B. 不产生溢出, -0800001000B其补码表示的机器数为:11111000 -1500010101B其补码表示的机器数为:11101011 相加的结果为:111100011 数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出. C.产生溢出5101010001B其补码表示的机器数为:10101111 -300111101B其补码表示的
17、机器数为:11000011 相加的结果为:101110010 数值最高位向符号位无进位,但符号位向前进位,故产生溢出. D.不产生溢出,200101101B其补码表示的机器数为:00101101 300111100B其补码表示的机器数为:00111100 相加的结果为:01101001 数值最高位向符号位无进位,符号位向前也无进位,故不产生溢出。5.从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字符0F,如何转换为其相对应的二进制数(0000000000001111)?答:从键盘敲入一大写字母后,将其码加上20H,就转换成了与其相对应的小写字母。 从键盘敲入16进
18、制数字符09后,将其码值减去30H,就转换成了与其相对应的二进制数. 从键盘敲入16进制数字符AF后,将其码值减去37H,就转换成了与其相对应的二进制数.6.详细表达总线缓冲器的作用。答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送防止相互冲突,当几路数据都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据与总线断开。7.锁存器和存放器有什么不同?答:锁存器与存放器都是用来暂存数据的器件,在本质上没有区别,不过存放器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端打入存放器,而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信
19、号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。1.8086从功能上分成了和两局部。这样设计的优点是什么?答:传统计算机在执行程序时,总是相继地完成取指令和执行指令的动作,即,指令的提取和执行是串行进行的。而8086 在功能上分成了和两局部,负责取指令,负责指令的执行,它们之间既互相独立又互相配合,使得8086可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指令的并行工作,大大提高了和总线的利用率,从而提高了指令的处理速度。2.8086 中地址加法器的重要性表达在哪里?答:地址加法器是8086 的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器
20、寻址的一个关键器件,地址加法器将两个16位存放器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。3.8086 中有哪些存放器?分组说明用途。哪些存放器用来指示存储器单元的偏移地址?答:8086 中有8个通用存放器、;两个控制存放器、;四个段存放器、。8个通用存放器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,专用做累加器,某些指令指定用它存放操作数和运算结果;为计数存放器,在某些指令中做计数器使用;为数据存放器;为基址存放器,为基址指针,为源变址存放器,为目的变址存放器,
21、这4个存放器在数据寻址中用来存放段内偏移地址有效地址或段内偏移地址的一局部;为堆栈指示器,用来存放栈顶有效地址。两个控制存放器用来存放有关的状态信息和控制信息。例如,标志存放器用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段存放器用来存放段地址。例如,存放器用来存放代码段的段地址;存放器用来存放数据段的段地址;存放器用来存放堆栈段的段地址;存放器用来存放扩展段的段地址。4.8086系统中存储器的逻辑地址由哪两局部组成?物理地址由何器件生成?如何生成?每个段的逻辑地址与存放器之间有何对应关系?答:8086系统中存储器的逻辑地址由段地址段首址和段内偏移地址有效地址两局
22、部组成;存储单元的物理地址由地址加法器生成,寻址时,首先将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段内偏移地址相加,得到一个20位的物理地址。数据段的段地址在存放器中,段内偏移地址可能在、或存放器中。代码段的段地址在存放器中,段内偏移地址在存放器中。堆栈段的段地址在存放器中,段内偏移地址在存放器中。扩展段的段地址在存放器中,段内偏移地址可能在、或存放器中。5.设中各有关存放器的当前状况为:0a8、17、54H、394、2f39H、1200H, 给出的是某操作数的有效地址,请分别写出该操作数、下一条要取的指令及当前栈顶的逻辑地址和物理地址。答:该操作数的逻辑地址为:17
23、:394,物理地址=17*103941B62;下一条要取的指令的逻辑地址为:54:2F39H,物理地址54H*102F39479H;当前栈顶的逻辑地址:0A8B:1200H,物理地址=0A8*10120000H。6.假设157时,某操作数的物理地址是215,当18时,该操作数的物理地址是多少?答:该操作数的段内偏移地址=该操作数的物理地址215157D02, 故当18时,该操作数的物理地址*102180224C07.设 2875H、34、1307H、8H,依此执行 、 、 、 后栈顶指针变为多少? ? ?答:当前栈顶指针*1H,依此执行 、 、 、 后栈顶指针仍为13078H。但34,34,2
24、875H。1. 假定=637,=2A9,位移量3237H,试确定在以下各种寻址方式下的有效地址是什么?1立即寻址2直接寻址3使用的存放器寻址4使用的间接寻址5使用的存放器相对寻址6基址变址寻址7相对基址变址寻址 答:1立即数寻址的有效地址是当前的内容;2直接寻址,假设使用位移量3237H进行,那么有效地址为3237H;3使用的存放器寻址时,操作数在存放器中,因此无有效地址;4使用的间接寻址时,有效地址在存放器中,即有效地址=637;5使用的存放器相对寻址的有效地址=637323795B4H;6基址变址寻址的有效地址=+=6372A98E18H;7相对基址变址寻址的有效地址=+050H; 2.
25、写出把首地址为的字数组的第6个字送到存放器的指令。要求使用以下几种寻址方式:1存放器间接寻址2存放器相对寻址3基址变址寻址答:1使用存放器间接寻址,把首地址为的字数组的第6个字送到存放器的指令为: , ,12 ,2使用存放器相对寻址,把首地址为的字数组的第6个字送到存放器的指令为: , ,123使用基址变址寻址,把首地址为的字数组的第6个字送到存放器的指令为: , ,12 ,3. 现有()=2000H,()=0100H,()=0002H,(20170H)12H,(20171H)=34H,(20172H)=56H,(20173H)=78H,(21200H)=2,(21201H)=4,(21202
26、H)7H,(21203H)=65H,试说明以下各条指令执行完后存放器的内容。1 ,1200H2 ,3 ,1200H4 ,5 ,11006 ,7 ,1100答:1指令 ,1200H执行完后存放器的内容为1200H; 2指令 ,执行完后存放器的内容为0100H; 4指令 ,是将从物理地址=*10=20170H开始的两个单元内容送,故执行完后存放器的内容为3412H; 5指令 ,1100是将从物理地址=*10+110021200H开始的两个单元内容送,故执行完后存放器的内容为4C2; 6指令 ,是将从物理地址=*10+=20172H开始的两个单元内容送,故执行完后存放器的内容为7856H; 7指令
27、,1100是将从物理地址=*10+110021202H开始的两个单元内容送,故执行完后存放器的内容为65B7H;4.假设()=2900H,()=2100H,()=1500H,()=00A0H,()= 0100H,()=0010H,数据段中变量名的偏移地址值为0050H,试指出以下源操作数字段的寻址方式是什么?其物理地址值是多少? 1 ,0 2 , 3 ,100H 4 , 5 , 6 ,: 7 , 8 , 9 ,10 10 , 11 , 12 ,答:1在指令 ,0 中,源操作数字段的寻址方式是立即数寻址,其物理地址值=*10; 2在指令 , 中,源操作数字段的寻址方式是存放器寻址,操作数在中,无
28、物理地址; 3在指令 ,100H 中,源操作数字段的寻址方式是直接寻址,其物理地址值=*10100 =29; 4在指令 , 中,源操作数字段的寻址方式是直接寻址,其物理地址值=*1050H =290005029050H; 5在指令 , 中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=*10H +=29H; 6在指令 ,: 中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=*10=21H; 7在指令 , 中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=*10H +=0H; 8在指令 , 中,源操作数字段的寻址方式是存放器间接寻址,其物理地址值=*10H +=29000
29、0A0290A0H; 9在指令 ,10 中,源操作数字段的寻址方式是存放器相对寻址,其物理地址值=*10+0 290001000 =2910; 10在指令 , 中,源操作数字段的寻址方式是存放器相对寻址,其物理地址值=*10+50 2900010050 29150H; 11在指令 , 中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=*10+ =290001000A0H =291A0H; 12在指令 , 中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=*10+=15000100A0H =150B0H5.分别指出以下指令中的源操作数和目的操作数的寻址方式。 1 ,200 2 , 3
30、 , 4 , 5 , 6答:1目的操作数字段的寻址方式是存放器寻址,源操作数字段的寻址方式是立即数寻址;2目的操作数的寻址方式是存放器寻址,源操作数的寻址方式是存放器相对寻址;3目的操作数的寻址方式是存放器寻址,源操作数的寻址方式是基址变址寻址;4目的操作数的寻址方式是存放器寻址,源操作数的寻址方式也是存放器寻址;5目的操作数的寻址方式是存放器间接寻址,源操作数的寻址方式是存放器寻址;6目的操作数的寻址方式是存放器间接寻址,源操作数的寻址方式是存放器寻址;6.试述指令 ,2017H和 ,:2017H 的区别。答:指令 ,2017H是将立即数2017H送存放器,而指令 ,:2017H是将段有效地
31、址为2017H的两个单元的内容送。7.写出以下指令中内存操作数的所在地址。 1 ,5 2 5, 3 3 4 ,: 5 ,2答:1指令 ,5中内存操作数的所在地址=*10+5; 2指令 5,中内存操作数的所在地址=*10+5和*10+6; 3指令 3中内存操作数的所在地址=+3; 4指令 ,:中内存操作数的所在地址=*10+; 5指令 ,2中内存操作数的所在地址=*10+2和*10+3;8.判断以下指令书写是否正确,如有错误,指出错在何处并用正确的程序段一条或多条指令实现原错误指令(8)、(13)除外)期望实现的操作。 1 , 9 ,3278H 2 , 10 3 11 4 5, 12 1A8H,
32、23 5 , 13 6 ,F5H 14 ,23 7 ,2000H 15 ,5 8 16 ,答:1 错,源操作数为字类型,目的操作数为字节类型,二者不一致。应改为: 或 ;2 错,存放器不能分为高8位和低8位使用,即没有存放器。应改为: 3 错,未指定操作数的类型。应改为: 4 5 错,目的操作数使用了立即数,在指令中一般不允许。应改为: :5 5 , 错,源操作数和目的操作数均为内存单元,不允许。应改为: , 6 5H 错,源操作数错,以AF开头的数字前应加0。应改为: ,0F5H7 ,2000H 正确。8 错,不能将栈顶数据弹至中。 9 ,3278H 错,立即数不能直接送存放器。应改为: ,
33、3278H 10 错,栈操作不能按字节进行。应改为: 11 正确。12 1A8H,23 错,源操作数是立即数,目的操作数必须使用存放器指出。应改为: ,1A8H ,23 13 错,不能用存放器做源操作数。14 ,23 错,不能用存放器间接寻址。应改为: , ,2315 ,5 错,不能用大于己于1的立即数指出移位位数。应改为: ,5 ,16 错,目的操作数是隐含的,不能在指令中写出。应改为: 9.设堆栈指针的初值为2000H,3000H,5000H,试问: 1执行指令 后 ()=? 2再执行 及 后 ()=?()=?()=?答:1执行指令 后 ()=20002=1; 2再执行 及 后 ()=1,
34、 ()=5000H, ()=5000H10.要想完成把2000H送1000H中,用指令 1000H,2000H是否正确?如果不正确,应用什么方法?答:把2000H送1000H中,用指令 1000H,2000H不正确,应改为: ,2000H 1000H11.假设想从200中减去中的内容,用 200,是否正确?如果不正确,应用什么方法?答:想从200中减去中的内容,用 200,不正确,应改为: ,200 12分别写出实现如下功能的程序段(1)双字减法被减数7B1D2A79H,减数53E2345。(2)使用移位指令实现一个字乘18的运算。(3)使用移位指令实现一个字除以10的运算。(4)将中间8位,
35、低四位,高四位拼成一个新字。(5)将数据段中以为偏移地址的连续四个单元的内容颠倒过来(6)将中的四位压缩数用非压缩数形式顺序放在、中。答:(1)双字减法的程序段是: ,2A79H ;被减数的低位字送 ,345 ;低位字相减,结果送 ,7B1 ;被减数的高位字送 ,53E2H ;高位字相减处并减去低位字相减产生的借位,结果送(2)使用移位指令实现一个字乘18的程序段是: ,05F7H ;被乘数送 ,1 ;被乘数乘以2,结果在中 , ;被乘数乘以2的结果暂存到 ,3 ;设置移位位数3 , ;被乘数再乘以8共乘以16,结果在中 , ;被乘数再乘以18,结果在中所求的程序段是: 00H ;被除数送 ,
36、3 ;设置移位位数3 ;被乘数除以8,结果在中 ;被乘数除以8的结果暂存到 ,2 ;设置移位位数2 ;被乘数除以4累计除32,结果在中 ;被除数/8-被除数/32,结果在中 ,2 ;设置移位位数2 ;被乘数除以4累计除128,结果在中 ;被除数/8-被除数/32+被除数/128,结果在中 ,2 ;设置移位位数2 ;被乘数除以4累计除512,结果在中 ;被除数/8-被除数/32+被除数/128-被除数/512,结果在中(4) 将中间8位,低四位,高四位拼成一个新字的程序段是: ,0F000H ;将的低12位清零,高4位不变 ,00H ;将的低4位清零,高4位清零,中间8位不变 ,0 ;将的高12
37、位清零,低4位不变 ;按要求组成一个新字,结果放在中。(5) 将数据段中以为偏移地址的连续四个单元的内容颠倒过来的程序段是: , ;数据段中为偏移地址的字单元内容送 ,3 ;数据段中3为偏移地址的字单元内容与的内容交换 ;数据段中3为偏移地址的字单元内容送为偏移地址的字单元 ,1 ;数据段中1为偏移地址的字单元内容送 ,2 ;数据段中2为偏移地址的字单元内容与的内容交换 1 ;数据段中2为偏移地址的字单元内容送1为偏移地址的字单元(6)将中的四位压缩数用非压缩数形式顺序放在、中的程序段是: ;四位压缩数的低位字节送 ,0 ;的高4位清零,得四位非压缩数的最低位,放入中 ,4 ;设置移位位数4
38、;中的数据逻辑右移4位,使四位压缩数的次低位位于的低4位 ;将的内容暂存到中保存 ,0 ;的高4位清零,得四位非压缩数的次低位,放中 ,4 ;设置移位位数4 ;中的数据逻辑右移4位,使四位压缩数的次高位位于的低4位 ;将的内容暂存到中保存 ,0 ;的高4位清零,得四位非压缩数的次高位,放中 ,4 ;设置移位位数4 ;使四位压缩数的最高位位于的低4位,得四位非压缩数的次高;位,放入中 ;将四位非压缩数的次低位移入中1.假设1,2是已经用定义的变量, 3和4是已经用定义的变量,判断以下指令书写是否正确?如有错误,指出错在何处?并写出正确的指令或程序段实现原错误指令期望实现的操作(19)、(20)不
39、改)。(1) 1(2) 4(3) , (4) (5) , 1000 (6) , 200H(7) 2,(8) 3, 25(9) 1, 2 (10) , 2(11) 34*3, (12) 3, 4(13) , 3(14) 1, (15) , 2(16) , 34(17) 34+100(18) , 3+7(19) 2(20) 3 87H答:1. (1) 1 错,1为字节类型,栈操作不能按字节进行,应改为 1 (2) 4 正确。 (3) , 错,源操作数寻址方式有问题。 应改为: , , (4) 错,假设源操作数为存放器寻址是不能加段说明及属性修改的。显然,原意应为存放器间接寻址,故应改为: :(5) , 1000 错,源操作数为字类型,目的操作数为字节类型,二者不一致。应改为: , 1000 (6) , 200H 错,运算应在汇编时完成,但200H在执行指令时才可获得。应改为: ,200H (7) 2, 错,源操作数和目的操作数均为内存单元,不允许。应改为: , 2, (8) 3, 25错,目的操作数中使用来别离存储器操作数,这是不允许的。应改为: 3+1,25 (9
限制150内