版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言复习资料第一部分 选择题第一章 基础知识1. 数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一项( B )array db 1,1,0AH,A,-2 A、1H1H0AH0AH 82h B、1H31H0AH41H FEHC、110A0A 12hD、31H31H41H41H 02h2. debug命令中显示内存单元内容的命令是( B )A、aB、dC、eD、r3. debug命令中反汇编命令是(D )A、qB、gC、tD、u4. 在DEBUG下,修改寄存器AX的命令是_B_。 AU AX BR AX CR DA AX5. 从200H开始反汇编的DEBUG命令是A
2、_。AU 200 BR 200 CD 200 DU6. 仅查看用户程序中数据段10号存储单元的DEBUG命令是A_。 AD DS:A A BD DS:A CD DS:10 10 DD DS:107. 计算机编程语言的发展顺序是(A )A、机器语言 汇编语言 高级语言B、汇编语言 机器语言 高级语言C、高级语言 汇编语言 机器语言 D、高级语言 机器语言 汇编语言8. 将124转换成十六进制数的结果是_A_。 A7CH B7DH C7EH D7BH9. 计算机对字符、符号采用统一的二进制编码。其编码采用的是_C_。ABCD码 B二进制码 CASCII D十六进制码第二章 80x86计算机组织10
3、. 对汇编语言源程序进行翻译的程序是_B_。 A连接程序 B汇编程序 C编译程序 D目标程序11. 在汇编语言中,能够翻译成二进制代码的指令是_A_。 A汇编指令 B伪指令 C机器指令 D宏指令12. 将高级语言程序翻译成机器语言代码的实用程序是_A_。 A编译程序 B汇编程序 C解释程序 D目标程序13. 下列寄存器中,哪一个不能用来保存偏移地址( A )A、AXB、SIC、DID、BX14. 下列哪个寄存器是用来保存堆栈栈顶元素的地址( B )A、BPB、SPC、SID、DI15. 程序流程是由下列那对寄存器组来控制的( C )A、DS: SIB、SS: SPC、CS: IPD、ES: D
4、I16. ?用来保存现场状态的寄存器是下列哪一个(C )A、CSB、AXC、FLAGSD、IP17. 在标志寄存器中表示溢出的标志是_C_。AAF BCF COF DSF18. 某存储单元的物理地址是56789H,可以作为它的段地址有(D) A.6789HB.56789HC.56780HD.5678H188.执行后是BX=0的同时也使CF=0,OF=0的指令是 XOR BX,BX19. 在数据段偏移地址1000H1003H的内容为:12H 34H 56H 78H,执行指令MOV AX , 1002H 后,AX寄存器的内容为( D )A、3456HB、5634HC、5678HD、78
5、56H20. 已知DS=12A0H,ES=22A0H,SS=33A0H,BP=0174H,指令MOV AX,DS:BP源操作数的物理地址是( D )。 A.12A074HB.22B74HC.33B74HD.12B74H21. 已知(DS)=2000H,(BX)=1002H,(21001H)=12H,(21002H)=34H,(21003H)=56H,则执行 MOV AX, BX之后,AX的值是(B )A1002HB5634HC3456HD1234H22. 两个操作数运算时,下列哪种结果会发生溢出_B_。 A两个负数相
6、加,结果为负 B两个正数相加,结果为负 C一正一负相加,结果为负 D两个正数相加,结果为正23. 堆栈段的逻辑地址由_D_组成。 ADS:BX BES:DI CCS:IP DSS:SP24. 物理地址的计算公式是 C 。 A段地址10+偏移地址 B偏移地址10+段地址 C段地址10H+偏移地址 D偏移地址10H+段地址25. 在8086系统中,数据寄存器组为_B_。 ASI、DI、SP、BP BAX、BX、CX、DXCCS、DS、ES、SS DCF、SF、ZF、OF第三章 寻址方式和指令系统26. 指令MOV AX,DS:1000H,源操作数的寻址方式是_B_。 A立即寻址 B直接寻址 C寄存
7、器寻址 D基址变址寻址27. 指令MOV DX,BPDI 源操作数的寻址方式是_D_。 A立即寻址 B直接寻址 C寄存器寻址 D基址变址寻址28. 若(AX)=2530H,(BX)=18E6H,MOV BX,AL指令正确的执行结果为C_。 ABX寄存器的值为2530H BBL寄存器的值为30H C18E6H单元的值为30H D18E6H单元的值为2530H29. 指令MOV AX,COUNTBX(寄存器相对寻址) 完成的操作是_A_。 A从存储单元读出一个字送入AX B从存储单元读出一个字节送入AX C将AX中的一个字写入存储单元 D将AX中的一个字节写入存储单元30. 指令MOV DX,DE
8、LTABXSi(相对基址变址寻址)的源操作数保存在_?C_。 A代码段 B堆栈段 C数据段 D附加段31. 操作数地址由BX寄存器指出,则它的寻址方式是_D_。Mov ax,bx A直接寻址 B寄存器寻址 C立即寻址 D寄存器间接寻址32. 一条指令中目的操作数不允许使用的寻址方式是_B_。 A寄存器寻址 B立即寻址 C变址寻址 D寄存器间接寻址33. 用直接寻址将AL的内容保存到16号单元,可用_C_指令。AMOV DS:0016H,AL BMOV AL,DS:0016HCMOV DS:0010H,AL DMOV AL,DS:0010H34. 指令MOV BX,-2+1执行后,BX中的内容(
9、16进制)为( B )?A.0FFFEH B.0FFFFH C.0001H D.8001H341.有128个字的数据区 起始地址是12ABH:00ABH 请给出这个数据区末尾字的物理地址 :12C59H?342基址变址寻址方式中 基址寄存器可以是 BX 或BP 变址寄存器可以是SI或DI35. 串操作指令中,目的串操作数的段地址一定在(D )寄存器中。A. CSB. SSC. DSD. ES36. 重复前缀指令rep规定重复次数必定在( C )寄存器中。 A.DXB.DLC.CXD.CL 37. 在LOOP、LOOPE、LOO
10、PNE类指令里隐含的计数器是( C )A、AXB、BXC、CXD、DX371.循环指令LoopNELoopNZ控制循环继续执行的条件是CX0且ZF=038. 若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=(B)?A. 1400HB. 77F8HC. 0000HD. 0FFFFH381.指令AND AX,OFH 后分离出AL低四位。382.执行NEG BX时需要使用段寄存器 DS的指令。382.指令 JMP FAR PTR DONE 属于段间转移直接寻址。39. 设AL=0AH,下列指令执行后能使AL=05H的是(A)A.XOR AL,0FHB.AND AL,0FH
11、C.TEST AL,0FHD.OR AL,0FH40. 数据定义num db 2 dup (3,4,5) / len equ $-num ,其中len为(A )。 A.6 B. 2 C. 3 D. 541. 下列程序段执行后LEN的值是()?ADDR DB 3,4,5,6789 EADDR DB 1LEN EQU EADDR - ADDR A.6HB.6HC.7HD.8H42. DEC BYTE PTR SI 指令中的操作数的数据类型是( B )A.字B. 字节C. 双字D.四字43. 下面各传送指令中,正确的是( )A.MOV DI,SI B.MOV DX+DI,ALC.MOV WORD P
12、TR BX,0100HD.MOV AL, BX 44. 关于字节乘法指令错误的说法是_C_。 A被乘数隐含在AL中 B乘数和被乘数都是字节型 C被乘数隐含在AX中 D乘积是字型45. 关于字除法错误的说法是_A_。 A16位被除数AX与8位源操作数相除 B32位被除数DX、AX与16位源操作数相除 C商在AX寄存器,余数在DX寄存器中 D带符号除法的商和余数都是补码表示的数第四章 指令格式46. 经过汇编产生的二进制目标文件是_B_。 A.ASM B.OBJ C.EXE D.MAP47. 汇编语言源程序是指_B_。 A系统提供的MASM B用户编写的.asm C汇编生成的.LST D连接生成的
13、.EXE48. 不能用MOV指令赋初值的段寄存器是_C_。 ADS BES CCS DSS49. 在COUNT DB 5这条存储单元定义伪指令中,COUNT称为_B_。 A助记符 B变量 C符号 D标号50. 将10个字数据3456H存放在存储单元中的伪指令是_B_。 ADW 10H DUP(3456H) BDW 10 DUP(3456H) CDW 10H DUP(5634H) DDW 10 DUP(5634H)51. 将字符串“INPUT”保存到存储单元MESS,正确的伪指令是_D_。 AINPUT DB MESS BMESS DB INPUT CINPUT DB “MESS” DMESS
14、DB“INPUT”52. _A_可用来指出一条汇编指令所在存储单元的符号地址。 A变量 B数组名 C标号 D偏移量53. 用指令MOV BX,SEG COUNT指令,可以得到存储单元COUNT的_A_。 A物理地址 B段地址 C偏移地址 D属性54. SP栈指针内容是1200H,执行两条PUSH指令之后,SP的值为_B_。 A1202H B1204H C11FCH D11FEH55. 获得BUFFER单元有效地址的汇编指令为_B_。 AMOV BX,BUFFER BLEA BX,BUFFER CMOV BX, BUFFER DLDS BX,BUFFER56. 有数据定义LIST DB
15、 21H,36H,18H,39H,执行MOV AX,WORD PTR LIST+2,则AX=( )。 A.3600HB.0036HC.1839HD.3918H 57. 8086的存储器是分段的,定义一个段的伪指令是( D )。 A.PROC和ENDPB.NAME和END C.SEGMENT和ENDSD.SEGMENT和ASSUME 第五章 循环与分支指令58. 在分支指令中,利用符号进行判断的指令是_B_。 AJC BJS CJZ
16、 DJO59. 在执行条件转移指令前,不能形成条件的指令有_C_。 ACMP BSUB CAND DMOV60. 在条件转移指令中,结果不为0则转移的指令是_D_。 AJNS BJZ CJS DJNZ61. 两个带符号数比较,不大于则转移的指令是_A_。 AJLE/JNG BJBE CJL DJAE62. 在条件判断时,采用操作数相与运算的判断指令是_C_。 ATEST BCMP CAND DJCXZ63. 将AL的2、6位屏蔽为0,其余位保持不变,指令为_B_。 AAND AL,42H BAND AL,0BBH COR AL,26H DADD AL,0FBH64. 用户程序中的数据段的段地址
17、(CS),_D_指令给出. Mov cs,ax AMOV AX,CODE BMOV CS,CODE MOV CS,AX MOV DSCS CMOV CS,DATA DMOV AX,DATAMOV DS,CS MOV DS,AX65. 下列描述错误的是_B_。ALOOP指令以CX为循环计数器BLOOPE指令循环的条件是CX不等于0且ZF=0CLOOPE指令循环的条件是CX等于0且ZF=1DLOOPNE指令循环的条件是CX不等于0且ZF=066. 串处理操作需要循环重复执行,_D_不能出现在串处理指令中。 AREP BREPZ CREPNZ DLOOP源串必须在数据段,目的串必须在附加段67. 在
18、串传送指令中,串的转送方向由_A_标志位决定。 ADF BCF CZF DOF68. 串传送指令中,源串和目的串的偏移地址由_C_寄存器指出。 ABX和DX BDS和DX CSI和DI DSI和CX69. 串扫描SCAS指令要求目的串放在_D_中。 A数据段 B代码段 C堆栈段 D附加段70. 串扫描SCASW指令隐含地将_A_寄存器作为查找的内容。 AAX BBX CCX DAL71. LOOPNE指令的循环计数值放在_C_寄存器中。 ACL BBX CCX DIP72. 循环指令的控制条件除CX寄存器之外,还可把标志位_C_作为控制条件。 ACF BSF CZF DOF73. 循环指令LO
19、OPNZ终止循环的条件是_B_。 ACX=0且ZF=0 BCX=0或ZF=1 CCX产0且ZF=0 DCXv0或ZF=074. 串传送指令MOVSW,执行CLD指令后,每传送一次,串的_B_。 A偏移地址+1 B偏移地址+2 C偏移地址-1 D偏移地址-275. 在串处理指令中,设置方向标志为1的指令是_A_。ASTD BCLD CHLT DCWD第六章 子程序结构76. 如果子程序的属性为FAR,下列说法错误的是_A_。 A可以段内直接调用 B可以段间间接调用 C可以段间直接调用 D只能段间调用77. 在子程序调用过程中,断点指的是_C_。 ACALL指令本身 BCALL的下一条指令 CCA
20、LL的下一条指令的地址 D子程序名78. 执行CALL SUBRl指令后,完成的操作是_B_。 A将SUBRl的偏移地址入栈保存 B将断点的偏移地址入栈保存 C将断点的偏移地址IP D将SUBRl的段地址CS,偏移地址IP79. 子程序的属性是用_B_定义的。+06 ACALL指令 BPROC过程定义伪指令 CFARPTR DRET指令80. 执行段间返回RET指令时,从堆栈中_AA_。A先弹出断点的偏移地址,再弹出段地址B先弹出断点的段地址,再弹出偏移地址C弹出断点的偏移地址D弹出断点的段地址81. 子程序结构中,保存现场指的是_B_。 A保存CALL指令 B保存断点的地址 C保存主程序用到
21、的寄存器 D保存子程序用到的寄存器82. 用CALL指令调用子程序时,从子程序返回到主程序_C_。 A用JMP指令 B用INT21H指令 C只能用RET指令 D既可以用RET又可以用JMP83. 如果在子程序中进行了现场保护,那么子程序中_A_。 A恢复现场在RET指令之前 B恢复现场在RET指令之后C直接用RET指令返回 D直接用JMP指令返回第七章 宏汇编84. 有关宏的作用,下列说法不正确的是_。 A宏可以被多次调用 B宏调用时不用保存断点 C宏定义体中不可以有标号 D宏展开是汇编程序完成的85. 宏定义时,是通过_A_实现参数传递的。 A哑元和实元 B堆栈 C寄存器 D存储单元86.
22、宏调用是通过_C_实现的。 A汇编指令 B宏指令 C宏展开 D机器指令87. 宏定义的伪指令是_A_。APROCENDP BmacROENDM CSEGMENTENDS DSTRUCENDS88. 宏定义体中的标号通过_伪指令用来指定。 APUBLIC BMACRO CEXTRN DLOCAL89. 有关宏展开的说法正确的是_。A在宏展开时,所有的伪指令被加入 B用宏定义体替换宏指令C哑元表中的哑元仍然保留D可以将宏指令变为机器代码90. 宏与子程序的区别是_。 A宏可以被多次调用 B宏是一段程序 C宏可以实现参数传递 D宏调用时不用返回第八章 输入输出程序设计91. 下面哪个指令的是将一个字
23、符数据输出到端口25H的正确指令。Aout 25h, alBout al, 25hCmov 25h,al Dmov al,25h92. 下面哪个指令的是将一个字数据从端口1000H输入的正确指令。Mov dx,1000hIn ax,dxAin 1000h, alBin al, 1000hCmov 1000h,al Dmov al,1000h93. CPU对软件中断的处理,下列说法正确的是_。 A中断允许标志IP必须为1 B通过8259A中断控制器管理中断 C不需要得知中断类型号 D执行INTn指令时立即转入中断处理94. 在中断处理系统中,中断向量指的是_C_。 A中断类型号 B中断子程序 C
24、中断子程序的入口地址 D中断源95. 有关中断向量表的说法正确的是_C_。 A中断向量表就是中断向量 B中断向量表中保存的是中断向量 C中断向量表中保存的是中断类型号 D中断向量表中保存的是中断子程序96. 在8086指令系统中,取出中断向量的指令是_。 AMOV AH,35H BMOV AH,25H INT 21H INT 21H CMOV AH,31H DMOV AH,4CH INT 21H INT 21H97. 编写中断子程序时,下列说法错误的是_B_。 A允许中断嵌套 B不允许开中断 C应该保护和恢复现场 D必须用IRET指令返回第九章 BIOS和DOS中断98. 从键盘输入一串字符使
25、用DOS功能调用的_D_。 A1号功能 B2号功能 C 9号功能 D10号功能99. DOS功能调用中,功能号应写入_B_寄存器中。 AAL BAH C DL DDH100. 显示一个字符的DOS功能调用要求将字符放入_D_。 ADS:DX BDS:BX CBL DDL第二部分 概念及简答1. 请将左边的词汇和右边的说明联系起来,括号内填入所选的A,B,C。(1) CPU M. 分析、控制并执行指令的部件,由算逻单元(ALU)和寄存器组等组成。(2) 存储器 C.存储程序、数据等信息的记忆装置,PC机有RAM和ROM两种。(3) 堆栈 D.以后进先出方式工作的存储器空间。(4) IP B.指示
26、下一条要执行的指令的地址。(5) SP A.保存当前栈顶地址的寄存器。(6)状态标志 L. 记录指令操作结果的标志,共六位:OF、SF、ZF、AF、 PF、CF(7) 控制标志 K控制操作的标志,如DF位 (8) 段寄存器 J保存各逻辑段的起始地址的寄存器。PC机有四个寄存器CS、DS、SS、ES。(9) 物理地址 F. 唯一代表存储器空间中的每个字节单元的地址。 (10)汇编语言 H. 用指令的助记符、符号地址、标号等符号书写程序的语言。(11) 机器语言G能被计算机直接识别的语言。(12) 汇编程序E把汇编语言程序翻译成机器语言程序的系统程序。(13) 连接程序I把若干个模块连接起来成为可
27、执行文件的系统程序。(14) 指令 O. 告诉CPU要执行的操作(一般还要指出操作数地址),在程序运行时执行。(15) 伪指令 N由汇编程序在汇编过程中执行的指令。2假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH (2)MOV AX,BX (3)MOV AX,100 (4)MOV AX,VAL (5)MOV AX,BX (6)MOV AX,ES:BX (7)MOV AX,B
28、P (8)MOV AX,SI (9)MOV AX,BX+10 (10)MOV AX,VALBX(11)MOV AX,BXSI (12)MOV AX,VALBXSIFFH00H80H3.6题的作图表示10H1B00:2000H1B00:2001H1B00:2002H1B00:2003H8000:FF10H8000:FF11H?(AL)?(AH)3.1 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7
29、H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。(1) MOV AX, 1200H(2) MOV AX, BX(3) MOV AX, 1200H(4) MOV AX, BX(5) MOV AX, 1100BX(6) MOV AX, BXSI(7) MOV AX, 1100BXSI答:(1) (AX)=1200H(2) (AX)=0100H(3) (AX)=4C2AH(4) (AX)=3412H(5) (AX)=4C2AH(6) (AX)=7856H(7) (AX)=65B7H3.2 试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存
30、入DX寄存器中。(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。(5) 把数0B5H与(AL)相加,并把结果送回AL中。答:(1) ADD DX, BX(2) ADD AL, BXSI(3) ADD BX+0B2H, CX(4) ADD WORD PTR 0524H, 2A59H(5) ADD AL, 0B5H2.
31、简述存储器的逻辑地址、物理地址和有效地址。答:用段地址和偏移地址表示存储单元的地址为逻辑地址,逻辑地址不是唯一的,同一地址可以有不同的表示,用20位的二进制表示存储单元的地址称为物理地址,每一个地址都是唯一的,由逻辑地址形成物理地址的过程是将段地址左移4位加偏移地址。计算偏移地址是由相关项组成的,由这些相关项计算得到地址称为有效地址(EA)3. 堆栈操作的原则是什么?堆栈操作的过程是怎样进行的?堆栈的操作是采用后进先出的原则。堆栈操作的过程是在压栈时先将SP2SP,然后将要压入的字压入到SS:SP所指示的单元中;在弹栈时,先将SS:SP所指示的字单元中的内容弹出来送到目标地址中,然后将SP+2
32、SP。4. 简要说明标志寄存器。标志寄存器(Flag Register)又称程序状态字(Program Status Word),是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。5. 什么是伪操作?伪操作又成为伪指令,它们不像机器指令那样是在程序运行期间由计算机来执行的,而是在汇编程序对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义
33、程序模式、定义数据、分配存储区、指示程序结果等功能。6. 什么是子程序?子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往用到类似的程序段,这些程序的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它。7. IO机构中一般有哪几种寄存器,请简要说明。I/O接口部件中一般有三种寄存器:一是用作数据缓冲的数据寄存器;二是用作保存设备和接口的状态信息,供CPU对外设进行测试的状态寄存器;三是用来保存CPU发出的命令以控制接口和设备的操作的命令寄存器。这些寄存器都分配有各自的端口号,CPU就是用过不同的端口号来选择各种外部
34、设备的。8. 简述宏指令与子程序的主要区别。宏与子程序都可以用一个名字定义一段程序,以简化源程序的结构和设计。二者的区别:(1)在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用; (2)宏调用是通过宏扩展来实现的,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化9. 简述汇编程序对宏调用作宏展开的过程。宏展开就是用宏定义的宏体取代源程序中的宏指令,同时用宏调用中的实元来取代定义中的变元。在取代时,实元与变元一一对应时,就将第一个实元取代第一个变元,第二个实元取代第二个变
35、元,其它依此类推。当实元个数多于变元个数时,则多余的实元不予考虑,当实元的个数少于变元个数时,则多余的变元作空处理。10. 什么是中断,中断的分类(也是中断来源),简述中断过程。中断是使CPU中止正在执行的程序而转去处理特殊事件的操作。软件中断:由中断指令INT引起,由于CPU的某些错误而引起(除法错中断、溢出中断),为调试程序(debug)设置的中断(单步中断、断点中断)。硬件中断:硬件中断来自处理机的外部条件,如I/O设备或其它处理机等,又称为外中断,有两个来源,一个是非屏蔽中断,一种是来自各种外部设备的中断。中断过程:当程序中发生中断时,即向CPU发出中断信号,取中断类型号N、FLAGS
36、内容入栈、当前CS入栈、当前IP入、禁止硬件中断和单步中断、从中断向量表中取出中断程序的入口地址、执行中断处理程序、中断返回。11. 已知DOS系统功能调用(INT 21H)AH功能调用参数返回参数07键盘输入(无回显)AL=输入字符编写程序段,检测从键盘输入的字符是否是字母Y(ASCII:59H),如不是则继续输入字符检测。12. 什么是BIOS和DOS功能调用,如何调用?BIOS是固化在只读存储器ROM中的基本输入输出程序。DOS是用来控制和管理计算机的硬件资源、方便用户使用的程序集合。DOS和BIOS提供了大量的可供用户直接使用的系统服务程序。在汇编程序中可以通过软件中断调用这些功能。调
37、用过程:(1)将调用参数装入指定的寄存器;(2)如需功能号,把它装入AH;(3)如需子功能号,把它装入AL;(4)按中断号调用BIOS或DOS中断;(5)检查返回参数是否正确。0AH00H14H00H1EH00H28H00H32H00HTABLETABLE+33.11题的TABLE存储方式3.3 如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行完后AX寄存器的内容是什么?MOVAX, TABLELEAAX, TABLE答:MOVAX, TABLE是将TABLE单元的内容送到AX,(AX)=1234HLEAAX,TABLE是将TABLE
38、单元的有效地址送到AX,(AX)=0032H3.4 求出以下各十六进制数与十六进制数62A0H之和,并根据结果设置标志位SF、ZF、CF和OF的值。(1) 1234H(2) 4321H(3) CFA0H(4) 9D60H答:(1) 和为74D4H;SF=0,ZF=0,CF=0,OF=0(2) 和为A5C1H;SF=1,ZF=0,CF=0,OF=1(3) 和为3240H;SF=0,ZF=0,CF=1,OF=0(4) 和为0000H;SF=0,ZF=1,CF=1,OF=03.5 写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。(1) ZW+(Z-X)(2) ZW
39、-(X+6)-(R+9)(3) Z(W*X)/(Y+6),R余数(4) Z(W-X)/5*Y)*2答:(1) MOV AX, Z;以下程序都未考虑带符号数的溢出SUB AX, XADD AX, WMOV Z, AX(2) MOV BX, XADD BX, 6MOV CX, RADD CR, 9MOV AX, WSUB AX, BXSUB AX, CXMOV Z, AX(3) ADD Y, 6MOV AX, WIMUL XIDIV YMOV Z, AXMOV R, DX(4) MOV AX, WSUB AX, XCWDMOV BX, 5IDIV BXIMUL YSHL AX, 1;(DX),(A
40、X)*2RCL DX, 13.6 已知程序段如下:MOVAX, 1234H;(AX)=1234H,标志位不变MOVCL, 4;(AX)和标志位都不变ROLAX, CL;(AX)=2341H,CF=1,SF和ZF不变DECAX;(AX)=2340H,CF=1不变,SF=0,ZF=0MOVCX, 4;(AX)和标志位都不变MULCX;(AX)=8D00H,CF=OF=0,其它标志无定义INT20H试问:(1) 每条指令执行完后,AX寄存器的内容是什么?(2) 每条指令执行完后,进位、符号和零标志的值是什么?(3) 程序结束时,AX和DX的内容是什么?答:(1) 见注释;(2) 见注释;(3) (A
41、X)=8D00H,(DX)=03.7 下列程序段中的每条指令执行完后,AX寄存器及CF、SF、ZF和OF的内容是什么?MOVAX, 0;(AX)=0,标志位不变DECAX;(AX)=0FFFFH,CF不变,SF=1,ZF=0,OF=0ADDAX, 7FFFH;(AX)=7FFEH,CF=1,SF=0,ZF=0,OF=0ADDAX, 2;(AX)=8000H,CF=0,SF=1,ZF=0,OF=1NOTAX;(AX)=7FFFH,标志位不变SUBAX, 0FFFFH;(AX)=8000H,CF=1,SF=1,ZF=0,OF=1ADDAX, 8000H;(AX)=0,CF=1,SF=0,ZF=1,
42、OF=1SUBAX, 1;(AX)=0FFFFH,CF=1,SF=1,ZF=0,OF=0ANDAX, 58D1H;(AX)=58D1H,CF=0,SF=0,ZF=0,OF=0SALAX, 1;(AX)=0B1A2H,CF=0,SF=1,ZF=0,OF=1SARAX, 1;(AX)=0D8D1H,CF=0,SF=1,ZF=0,OF=0NEGAX;(AX)= 272FH,CF=1,SF=0,ZF=0,OF=0RORAX, 1;(AX)= 9397H,CF=1,SF和ZF不变,OF=13.8 编写一程序段:比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_
43、LESS;否则顺序执行程序。答:程序段如下:MOVCX, 5CLDMOVDI, SEG OLDSMOVDS, DIMOVES, DILEASI, OLDSLEADI, NEWSREPECMPSBJNENEW_LESSNEW_LESS:3.9 试编写一程序段,要求把BL中的数除以CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。答:MOVAL,BLMOVAH,0;假定为无符号数,否则用CBW指令即可DIVCLMOVAH,0SHLAX,1MOVDX,AX3.10 试编写一程序段,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字节单元UP中;找出小于42H的无符号数的个
44、数并存入字节单元DOWN中。答:JMPBEGIN原(BP)低字节原(BP)高字节存储器002EH002FH0030H0031H0032H0033H0034H0035H0036H0037H0038H0039H003AH003BH003CH003DH003EH003FH0040H堆栈帧原(SP)新(BP)新(SP)3.52题的答案UPDB 0DOWNDB 0TABLEDB 100H DUP (?);数组BEGIN:MOVCX,100HMOVBX,-1MOVSI,0MOVDI,0L1:INCBXCMPTABLEBX,42HJAL2JBL3JMPL4L2:INCSIJMPL4L3:INCDIL4:LO
45、OPL1MOVUP,SIMOVDOWN,DI4.1 指出下列指令的错误:(1) MOV AH, BX;寄存器类型不匹配(2) MOV BX, SI;不能都是存储器操作数(3) MOV AX, SIDI;SI和DI不能一起使用(4) MOV MYDAT BXSI, ES:AX;AX寄存器不能使用段超越(5) MOV BYTE PTR BX, 1000;1000超过了一个字节的范围(6) MOV BX, OFFSET MYDAT SI;MYDAT SI已经是偏移地址,不能再使用OFFSET(7) MOV CS, AX;CS不能用作目的寄存器(8) MOV ECX, AX;两个操作数的数据类型不同4
46、.2 假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1) ADDVAR1, VAR2;不能都是存储器操作数(2) SUBAL, VAR1;数据类型不匹配(3) JMPLAB SI;LAB是标号而不是变量名,后面不能加SI(4) JNZVAR1;VAR1是变量而不是标号(5) JMPNEAR LAB;应使用NEAR PTR答:见注释。4.3 对于下面的数据定义,三条MOV指令分别汇编成什么?(可用立即数方式表示)TABLEADW 10 DUP (?)TABLEBDB 10 DUP (?)TABLECDB 1234MOVAX, LENGTH TABLEA;汇编成MOVA
47、X, 000AHMOVBL, LENGTH TABLEB;汇编成MOVBL, 000AHMOVCL, LENGTH TABLEC;汇编成MOVCL, 0001H答:见注释。5.1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。答:程序段如下:BEGIN:MOVAH, 1;从键盘输入一个字符的DOS调用INT21HCMPAL, a ;输入字符<a吗?JBSTOPCMPAL, z ;输入字符>z吗?JASTOPSUBAL, 20H;转换为大写字母,用AND AL, 1101 1111B也可MOVDL, AL;显示一个字符的DOS调用MOVAH, 2INT21HJMPBEGINSTOP:RET5.2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。答:程序段如下:BEGIN:MOVAH, 1;从键盘输入一个字符的DOS调用INT21HCMPAL, a ;输入字符<a吗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省天水市秦安县第二中学2025届物理高三上期中教学质量检测试题含解析
- 2025届山东省宁阳第四中学高三物理第一学期期中经典模拟试题含解析
- 辽宁省本溪中学2025届高一物理第一学期期末调研试题含解析
- 安徽六安市第一中学2025届高一物理第一学期期末预测试题含解析
- 四川省达州市2025届物理高一第一学期期末监测模拟试题含解析
- 2025届甘肃省兰州市第五十八中高三上物理期中调研模拟试题含解析
- 浙江安吉天略外国语学校2025届物理高一上期中联考模拟试题含解析
- 2025届上海市卢湾高中高二物理第一学期期末监测试题含解析
- 黑龙江省东部地区四校联考2025届物理高二上期末统考试题含解析
- 吉林省通榆一中2025届高三上物理期中复习检测模拟试题含解析
- 民法典合同编之保证合同实务解读PPT
- 全国第四轮学科评估PPT幻灯片课件(PPT 24页)
- 大气污染控制工程课程设计-某厂酸洗硫酸烟雾治理设施设计
- 名牌包包网红主播电商直播带货话术脚本
- 高考语文作文素材人物速递——苏炳添课件18张
- 蛋鸡养殖场管理制度管理办法
- 洗涤有限公司各生产班组工作流程及工作要求
- 学习共同体建设-精
- 钢板桩及支撑施工方案DOC
- 完整解读新版《化学》新课标2022年《义务教育化学课程标准(2022年版)》PPT课件
- 民法典关于监护的规定解读
评论
0/150
提交评论