《汇编语言》作业及答案

  • 格式:pdf
  • 大小:139.23 KB
  • 文档页数:14

习题一1.在计算机内部,计算机能够直接执行的程序语言是。A.汇编语言B.C++语言C.机器语言D.高级语言2.在堆栈段中,存放栈顶地址的寄存器是。A.IPB.SPC.BXD.BP3.指令指针寄存器IP用来存放代码段中的偏移地址。在程序运行的过程中,它始终指向。A.下一条指令的首地址B.下一条指令的地址C.当前指令的首地址D.当前指令的地址4.编译程序的功能是。A.检查源程序中的语法错误和逻辑错误B.将源程序编译成目标程序C.改正源程序中的语法错误D.将高级语言源程序翻译成汇编语言源程序5.用户为了解决自己的问题,用汇编语言所编写的程序,称为。A.目标程序B.源程序C.可执行程序D.汇编程序6.计算机中用来存储程序、数据等信息的记忆装置是。A.控制器B.运算器C.CPUD.存储器7.在宏汇编中,源程序必须通过____编译_______生成目标代码,然后用连接程序将其转化为可执行文件,该文件可在系统中运行。习题二1当SS=3000H,SP=0100H时,执行PUSHAX指令后,堆栈顶部的物理

地址

是()A.30100HB.30098HC.30102HD.300FEH2设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是

()A.-82、-126、-2B.-2、-125、126

C.-2、-126、-125D.-82、-125、1253标志寄存器中属于控制标志位的是()

A.DF,OF,SFB.DF,IF,TF

C.OF,CF,PFD.AF,OF,SF

4设(AX)=4544H,在执行指令”SUBAH,AL”之后,()

A.CF=0,OF=0B.CF=0,OF=1

C.CF=1,OF=0D.CF=1,OF=15若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行

PUSHAX,PUSHBX,POPCX,POPDX后,寄存器CX的内容为

______19____________。

6若物理地址为2D8C0H,偏移量为B6A0H,则段地址为_2222H________。

7设(AL)=70H,分析在SUBAL,9AH后,标志寄存器中CF、OF、ZF、PF、

SF的状态。CF=1,OF=1,,ZF=0,PF=0,SF=1习题三1、下列指令中,正确的一条是。A)MOVBYTEPTR[BX],1000B)MOVAX,[SI][DI]C)LEABX,4[BX]D)MOVAX,ARRAY1+ARRAY22、指令SUBAX,5[BX+DI]的源操作数的寻址方式是。A)寄存器寻址B)基址+变址寻址C)变址寻址D)直接寻址3、假设V1和V2是用DW定义的变量,下列指令中正确的是。A)MOVV1,V2B)MOVV1,20HC)MOV2000H,V2D)MOVAL,V1

4、设在内存单元(0010H)=12H,(0011H)=34H,对于从0010H处取一个

字的叙述正确的是________。A)读出的字的值为1234H,需要访问两次存储器B)读出的字的值为3412H,需要访问两次存储器C)读出的字的值为3412H,需要访问一次存储器D)读出的字的值为1234H,需要访问一次存储器5、有指令“MOVSI,OFFSETDATA”,和它等效的指令是___LEA

SI,DATA_________。6、对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:TABLE1DB?

TABLE2DW20DUP(?)TABLE3DB‘ABCD’MOVAX,TYPETABLE1;AX=①

MOVBX,TYPETABLE2;BX=②

MOVCX,LENGTHTABLE2;CX=③

MOVDX,SIZETABLE2;DX=④

MOVSI,LENGTHTABLE3;SI=⑤AX=1,BX=2,CX=20,DX=40,SI=1.习题四1.MOVAL,20HMOVBL,ALADDAL,BLSBBAL,10HCBWDIVBL上述程序段执行后,(AH)=___10H________,(AL)=___01H_______2.语句”BUFDB25”的含义是()

A.用BUF表示25

B.定义BUF为字节变量,初始值为25

C.从标号BUF对应的地址起分配25个单元

D.定义BUF为变量,其地址为253.除法指令DIV的格式中,只有一个源操作数。若其类型属性为字节,则

目的操作数在_______AX__________中。

4.执行一列三条指令后,AX寄存器中的内容是()。MOVAX,‘8’

ADDAL,‘9’AAAA.0071HB.0107HC.0017HD.0077H

5.逻辑移位指令SHL用于()A.带符号数乘2B.带符号数除2

C.无符号数乘2D.无符号数除26.CWD指令的功能是()A.把源操作数的符号位扩展到目的操作数中

B.把AL中的符号位扩展到AH中

C.把AH中的符号位扩展到AL中

D.把AX中的符号位扩展到DX中7.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正

确的是()A.DIVBXB.CWDIDIVBXC.XORDX,DXD.CBWDIVBXIDIVBX8.使AL中的操作数0,1位变反,其它位不变的指令是

_____XOR_03H_______________。

9.写出将寄存器BX,AX的内容互换的正确指令是

____XCHG_AX,BX___________________。10.设(AX)=2012H,执行CMPAX,2012H后(AX)=__2012H_________。

习题五

(1)设(SS)=338AH,(SP)=0450H,执行PUSHBX和PUSHF两条指令后,

堆栈顶部的物理地址是()。A.33CECHB.33CF2H

C.33CF4HD.33CE8H

(2)若(AX)=-15,要得到(AX)=15应执行的指令是()。

A.NEGAXB.NOTAXC.INCAXD.DECAX

(3)将累加器AX内容清零的错误指令是()。A.ANDAX,0B.XORAX,AX

C.SUBAX,AXD.CMPAX,AX

(4)填写执行下列程序段后的结果。MOVDX,8F70H

MOVAX,54EAHORAX,DX

ANDAX,DXNOTAXXORAX,DX

TESTAX,DX

(AX)=__________、(DX)=__________、SF=__________

OF=________、CF=_________、PF=_________、ZF=__________(AX)=0FFFFH,(DX)=8F70H,SF=1,OF=0,CF=0,PF=0,ZF=0(5)DAT1DW12H,23H,34H,46H,57HDAT2DW03HLEABX,DAT1

ADDBX,DAT2

MOVDX,[BX]

MOVAX,4[BX]

SUBAX,DX

执行上列程序段后,AX的内容为。(AX)=2300H

(6)执行下列程序段后,AX和CF中的值是多少?STCMOVCX,0403H

MOVAX,0A433H

SARAX,CL

XCHGCH,CL

SHLAX,CL(AX)=4860,CF=1习题六1.已知AX=0FFFFH,DX=0001HMOVCX,2LOP:SHLAX,1RCLDX,1LOOPLOP上述程序段执行后,(DX)=0007H,(AX)=0FFFCH2.已知AX=78H,BX=0804H

SHRBX,1

ANDBX,0F0FH

MOVCX,4

LOP:XCHGBH,BLDIVBLSALAX,1LOOPLOP上述程序段执行后,(AX)=001EH,(BX)=0402H

3.CODESEGMENTASSUMECS:CODE,DS:CODE,SS:CODEORG100HBEGIN:MOVAX,01HMOVBX,02HMOVDX,03HMOVCX,04HL20:INCAXADDBX,AXSHRDX,1LOOPNEL20RETCODEENDSENDBEGIN当执行以上程序后,AX、BX、CX、DX中的值分别是多少?:AX=①BX=②

CX=③

DX=④

(AX)=03H,(BX)=07H,(CX)=02H,(DX)=0

4.已定义了两个字变量A和B,补充下列程序段使之完成下列功能:

A.若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。

B.若两个数均为奇数,则将两数均加1后存回原变量。

C.若两个数均为偶数,则两个变量均不改变。MOVAX,ATESTAX,_0001H_____JZA_EVENMOVBX,BTESTBX,0001HJZB_EVEN_INC_AX_____________MOVA,AX_INC_BX__________MOVB,BXB_EVEN:_JMP_EXIT___________A_EVEN:MOVBX,BTESTBX,0001HJZEXITXCHG_AX,BX___________MOVA,AXMOVB,BXEXIT:

习题七1.如果用调试程序DEBUG的R命令在终端上显示当前各寄存器的

内容如下,请说明当前堆栈段段基址是多少?栈顶的物理地址是

多少?

段基址21F0H,物理地址31EEEHC>DEBUG-RAX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONC2.分析下列程序段执行后,AX寄存器的内容是什么?......TABLEDW10H,20H,30H,40H,50H,60H,70H,80HENTRYDW6......MOVBX,OFFSETTABLE

ADDBX,ENTRY

MOVAX,[BX](AX)=0040H3.试分析下列程序段执行后,AX和DX寄存器的内容分别是什么?

......VAR1DB86HVAR2DW2005H,0021H,849AH,4000H

......MOVAL,VAR1CBWLEABX,VAR2

MOVDX,2[BX]

SUBAX,DX(AX)=FF65H,(DX)=0021H4.试分析下列程序段,回答所提问题。ORG3000HDB11H,12H,13H,14H,15H......MOVBX,3000HSTCADCBX,1

SALBL,1INCBYTEPTR[BX](1)程序段执行后,3004H单元中的内容是什么?16H

(2)程序段执行后,BX中的内容是什么?CF的值是1还是0?(BX)=3004H,CF=0习题八1.分析下面的程序段,执行后AX的内容为多少?

ARRAYDW10DUP(2)

XORAX,AX

MOVCX,0AH

MOVSI,12H

NEXT:ADDAX,ARRAY[SI]

SUBSI,02HLOOPNEXT(AX)=20//或14H2.执行下列程序段后,给出指定寄存器的内容。MOVAX,0MOVBX,1MOVCX,5A:ADDAX,BXINCBXLOOPAHLT执行后的结果为AX=__15____;BX=__6____。