汇编练习题.docx

上传人:b****2 文档编号:11362371 上传时间:2023-05-31 格式:DOCX 页数:18 大小:22.59KB
下载 相关 举报
汇编练习题.docx_第1页
第1页 / 共18页
汇编练习题.docx_第2页
第2页 / 共18页
汇编练习题.docx_第3页
第3页 / 共18页
汇编练习题.docx_第4页
第4页 / 共18页
汇编练习题.docx_第5页
第5页 / 共18页
汇编练习题.docx_第6页
第6页 / 共18页
汇编练习题.docx_第7页
第7页 / 共18页
汇编练习题.docx_第8页
第8页 / 共18页
汇编练习题.docx_第9页
第9页 / 共18页
汇编练习题.docx_第10页
第10页 / 共18页
汇编练习题.docx_第11页
第11页 / 共18页
汇编练习题.docx_第12页
第12页 / 共18页
汇编练习题.docx_第13页
第13页 / 共18页
汇编练习题.docx_第14页
第14页 / 共18页
汇编练习题.docx_第15页
第15页 / 共18页
汇编练习题.docx_第16页
第16页 / 共18页
汇编练习题.docx_第17页
第17页 / 共18页
汇编练习题.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汇编练习题.docx

《汇编练习题.docx》由会员分享,可在线阅读,更多相关《汇编练习题.docx(18页珍藏版)》请在冰点文库上搜索。

汇编练习题.docx

汇编练习题

一、填空或选择题

1.二进制数1010111B转换成十六进制数是()。

A.A7HB.AEHC.87HD.57H

2.设字长为8位,则有符号数-2的补码表示是()

A.10000010BB.11111101BC.11111110BD.00000010B

3.设字长为8位,则有符号数+2的补码表示是()

A.10000010BB.11111101BC.11111110BD.00000010B

4.书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加()

A.0B.DC.BD.H

5.IBMPC微机中,有符号数是用()表示的

A.原码B.补码C.反码D.BCD码

6.十进制数-48的原码是,反码是,补码是。

7.典型的微机硬件系统是由系统总线将_____中央处理器_______、___储存器______和___输入输出子系统___连接起来的。

8.计算机中唯一代表存储空间中每个字节单元的地址的是(B)

A.段地址B.物理地址C.逻辑地址D.偏移地址

9.在Intel8086微处理器中,用来保存各逻辑段的段地址的寄存器称为(C)。

A.变址寄存器B.标志寄存器

C.段寄存器D.指令指针寄存器

10.在Intel8086微处理器中,用来保存数据段的段地址的寄存器是(A)

A.DSB.ESC.SSD.CS【ES附加段,CS代码段,SS堆栈段】

11.在Intel8086微处理器中,用来保存代码段的段地址的寄存器是(D)

A.DSB.ESC.SSD.CS

12.在Intel8086微处理器中,用来保存堆栈段的段地址的寄存器是(C)

A.DSB.ESC.SSD.CS

13.微处理器Intel8086中存放下一条将要执行的指令偏移地址的寄存器(A)

A.SPB.AXC.DID.IP:

存放代码段的偏移地址始终指向下一条的首地址

14.微处理器Intel8086中存放堆栈栈顶的偏移地址的寄存器是(A)

A.SPB.AXC.DID.IP

15.下列答案中(A)反映了指令操作结果有溢出

A.OF=1B.SF=1C.ZF=1D.CF=1进位标志CF零标志ZF符号标志SF溢出标志OF奇偶标志PF辅助进位标志AF

16.下列答案中(C)反映了指令操作结果等于0

A.OF=1B.SF=1C.ZF=1D.CF=1

17.下列答案中(B)反映了指令操作结果为负数

A.OF=1B.SF=1C.ZF=1D.CF=1

18.下列答案中(D)反映了指令操作结果有进位

A.OF=1B.SF=1C.ZF=1D.CF=1

19.取指令时,默认的段寄存器是__________;堆栈操作时,默认的段寄存器是__________。

20.在实模式下,某段寄存器中装入的值为2345H,则该段的起始地址和结束地址为()。

A.2345H,0FFFFHB.23450H,3344FH

C.23450H,33450HD.2345H,12344H

21.在实模式下,某存储单元的段地址为3015H,偏移地址为0001H,则该单元的物理地址为()

A.3016HB.30151HC.30150001HD.20166H

22.如果在一个程序开始执行以前CS=0A7F0H,IP=2B40H,则存放该程序的第一条指令的存储单元的物理地址是()。

A.0AAA40HB.0D330HC.0D3300HD.0B0A40H

23.如果SS=0A7F0H,SP=2B40H,则当前堆栈栈顶的物理地址是()。

A.0AAA40HB.0D330HC.0D3300HD.0B0A40H

24.把汇编源程序变成代码程序的过程是()

A.运行B.汇编C.编辑D.链接

25.下列关于汇编程序描述正确的是()

A.用指令的助记符、符号地址、标号等符号书写程序的语言;

B.把若干个模块连接起来成为可执行文件的系统程序;

C.把汇编语言程序翻译成机器语言程序的系统程序;

D.能被计算机直接识别的语言。

26.设(DS)=2000H,(BX)=0100H,(21200H)=4C2AH,下面的指令执行后AX的内容是()

MOVAX,1100H[BX]

A.1200HB.0100HC.21200HD.4C2AH

27.设(DS)=2000H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()

MOVAX,[1100H]

A.1200HB.1100HC.3412HD.1234H

28.设(SS)=2000H,(BP)=1100H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()

MOVAX,[BP]

A.1200HB.1100HC.3412HD.1234H

29.设(DS)=2000H,(BX)=1000H,(SI)=0100H,(21100H)=12H,(21101H)=34H,下面的指令执行后AX的内容是()

MOVAX,[BX+SI]

A.1200HB.1100HC.3412HD.1234H

30.设(DS)=2000H,(BX)=1000H,(SI)=0100H,(21102H)=12H,(21103H)=34H,下面的指令执行后AX的内容是()

MOVAX,[BX+SI+2]

A.1200HB.1100HC.3412HD.1234H

31.下列指令中正确的是()

A.MOVAL,BXB.MOVCS,AX

C.MOVSI,BPD.MOV[SI],[BP]

32.已知BX=0400H,DS=1000H,(10400H)=0500H,(10402H)=0600H,执行指令LEABX,[BX+2]后,BX=()

A.0500HB.0400HC.0402HD.0600H

33.已知(SS)=2000H,(SP)=1000H,执行指令PUSHBX后,(SP)=()

A.1000HB.2000HC.1002HD.0FFEH

34.设下列程序段执行前SP=1000H,执行程序段后SP=________。

MOVAX,1234H

MOVBX,5678H

PUSHAX

PUSHBX

A.SP=1002HB.SP=1004H

C.SP=0FFCHD.SP=0FFEH

35.已知(AX)=1234H,(BX)=5678H,下述程序段执行后(AX)=_______________。

PUSHAX

PUSHBX

POPAX

POPBX

36.设SP=0040H,如果用进栈指令存入5个数据,则SP=,若又用出栈指令取出2个数据后,则SP=.

37.有程序段MOVAX,62A0H

ADDAX,1234H

上面程序段执行后,下列描述正确的是()。

A.AX=74D4H,SF=0,CF=0,OF=0,ZF=0

B.AX=A5C1H,SF=1,ZF=0,CF=0,OF=1

C.AX=3240H,SF=0,ZF=0,CF=1,OF=0

D.AX=0000H,SF=0,ZF=1,CF=1,OF=0

38.有程序段MOVAX,62A0H

ADDAX,4321H

上面程序段执行后,下列描述正确的是()。

A.AX=74D4H,SF=0,CF=0,OF=0,ZF=0

B.AX=A5C1H,SF=1,ZF=0,CF=0,OF=1

C.AX=3240H,SF=0,ZF=0,CF=1,OF=0

D.AX=0000H,SF=0,ZF=1,CF=1,OF=0

39.对于指令MULSI,默认存放被乘数的寄存器是(),乘积的高16位存放在寄存器()中。

A.AXB.BXC.CXD.DX

40.已知AX=1010H,下列()条指令不能使AX=0

A.MOVAX,0B.SUBAX,AX

C.ORAX,0D.XORAX,AX

41.指令SUBBL,BL执行后,ZF、PF、SF标志位的值为()

A.0,0,0B.1,1,1C.1,1,0D.1,0,0

42.已知AX=1234H,CL=4则执行指令ROLAX,CL后,AX=()

A.1234HB.2341HC.2340HD.4123H

43.已知AX=1234H,CL=4则执行指令RORAX,CL后,AX=()

A.1234HB.2341HC.2340HD.4123H

44.已知BX=0E3H,执行指令ANDBX,79H后,BX=()

A.9AHB.61HC.0FBHD.1CH

45.已知BX=0E3H,执行指令ORBX,79H后,BX=()

A.9AHB.61HC.0FBHD.1CH

46.已知DX=0B9H,则执行指令SHLDL,1后,DX=()

A.005CHB.0017HC.05C8HD.0072H

47.已知DX=0B9H,则执行指令SHRDX,1后,DX=()

A.005CHB.0017HC.05C8HD.0072H

48.假设AX和BX的内容是两个带符号的数,下列答案中,()能够实现当AX和BX中的内容相等时,转去执行ZERO

A.CMPBX,AXB.CMPBX,AX

JAZEROJGZERO

C.CMPAX,BXD.CMPBX,AX

JZZEROJNZZERO

49.假设AX和BX的内容是两个带符号的数,下列答案中,()能够实现当BX的内容大于AX中的内容时,转去执行ZERO

A.CMPBX,AXB.CMPBX,AX

JAZEROJGZERO

C.CMPAX,BXD.CMPBX,AX

JZZEROJNZZERO

50.循环指令LOOPZ的循环条件是()

A.CX=0且ZF=0B.CX=0且ZF=1

C.CX≠01且ZF=0D.CX≠0且ZF=1

51.循环指令LOOPNZ的循环条件是()

A.CX=0且ZF=0B.CX=0且ZF=1

C.CX≠0且ZF=0D.CX≠0且ZF=1

52.已知SS=2000H,SP=1000H,执行指令CALLNEARPTRAVE后,SS=(),SP=()。

A.2000HB.0FFCHC.20000HD.0FFEH

53.假设SP=0FFEH,SS=2200H,(22FFEH)=1234H,则在段内调用子程序FUN后,执行子程序FUN中的RET指令后,IP=()

A.22FFEHB.0FFEHC.1234HD.2200H

54.已知(SI)=2000H,(DS)=3000H,(32000H)=8605H。

则指令JMP WORD PTR[SI]执行完后IP=()

A.2000HB.3000HC.8605HD.32000H

55.下面的标识符中,()是合法的标识符,符合汇编语言的语法规范。

A.MOVB.2NEXTC.NEXTD.LENGTH

56.在下列语句中,AGAIN称为()

AGAIN:

INCSI

A.符号B.助记符C.标号D.变量

57.对于下列数据定义语句,TYPETA=()

TADB‘1234’,5

A.1B.4C.5D.2

15.对于下列数据定义语句,LENGTHTA=()

TADB‘1234’,5

A.1B.4C.5D.2

58.假设程序中的数据定义如下:

LNAMEDB20DUP(?

则()可以实现将LNAME的偏移地址放入寄存器BX

A.MOVBX,TYPELANME

B.MOVBX,OFFSETLNAME

C.MOVBX,LENGTHLNAME

D.MOVBX,SIZELNAME

59.在存储器中预留60个字节的空单元的伪指令是()

A.ARRAYEQU60B.ARRAYDW60

C.ARRAYDB60DUP(?

)D.ARRAYDW60DUP(?

60.在存储器中预留60个字的空单元的伪指令是()

A.ARRAYEQU60B.ARRAYDW60

C.ARRAYDB60DUP(?

)D.ARRAYDW60DUP(?

61.在使用DEBUG调试某程序段时,使用U命令后,显示如下,则指令MOVCX,0002H的机器码存放在从(①)开始的连续(②)个字节内存单元,

1000:

0000B80100MOVAX,0001

1000:

0003B90200MOVCX,0002

1000:

000601C8ADDAX,CX

①A.10000HB.10003HC.10006HD.10005H

②A.1B.2C.3D.4

二、简答题和编程

1、设机器字长为8位,x=54,y=-23,则

[x]原=_________B,[x]反=____________B,[x]补=____________B,

[y]原=_________B,[y]反=____________B,[y]补=____________B。

2、判断下列指令是否错误

1)MOVAH,BX

2)MOV[BX],[SI]

3)MOVAX,[SI][DI]

4)MOV[BX][SI],ES:

AX

5)MOVBYTEPTR[BX],1000

6)MOVCS,AX

7)MOVDS,2000H

8)POPCS

9)LEABX,4[BX]

10)SARAX,5

11)CMP[DI],[SI]

3、现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=1234H,(20102H)=5678H,(21200H)=4C2AH,(21202H)=65B7H试说明下列各条指令完成后AX寄存器的值。

1)MOVAX,1200H

2)MOVAX,BX

3)MOVAX,[1200]

4)MOVAX,[BX]

5)MOVAX,1100H[BX]

6)MOVAX,[BX][SI]

7)MOVAX,1100H[BX]SI]

4、现有(AX)=2000H,(BX)=1200H,(SI)=0002H,,(DI)=0003H,(DS)=3000H,

(SS)=3000H,(SP)=0000H,(31200H)=50H,(31201H)=02H,(31202H)=0F7H,(31203H)=90H,(CF)=1,请写出下列各条指令独立执行后有关寄存器及存储单元的内容,若该指令影响标志寄存器的标志位,则请给出标志位SF,ZF,OF,CF的值。

1)ADDAX,1200H

2)SUBAX,BX

3)MOV[BX],AX

4)PUSHAX

5)DECBYTEPTR[1200H]

6)SARBYTEPTR[SI+1200H],1

7)ROLBYTEPTR[SI+BX+1],1

8)MULWORDPTR[BX][SI]

9)ADCAX,BX

5、写出完成下述功能的程序段

1)把4600H传送给AX寄存器

2)从AX寄存器中减去0038H

3)把数组MYDAT的段地址和偏移地址保存在DS和BX中

4)从地址是DS:

0的存储单元中传送一个数据到BL寄存器

5)将数据段从STRING1开始的20个字符复制到数据段从STRING2开始的存储单元中

6)编写程序段将字符串STRING中的’&’字符用空格符代替

字符串STRING为:

YOUARETHE&BEST!

7)将AX和BX中的两个数相加,如果结果为零转去执行OK

6、已知存储器中有一个首地址为ARRAY的100个字的数组,要求数组中的每一个数加1(不考虑溢出),试写出完成此功能的程序段。

7、对于下列的数据定义,三条MOV指令分别汇编成什么(用立即数方式表示)。

TABLEADW10DUP(?

TABLEBDB10DUP(?

TABLECDB‘1234’

………

MOVAX,LENGTHTABLEA

MOVBL,LENGTHTABLEB

MOVCL,LENGTHTABLEC

8、对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDBDB?

TABLEADW20DUP(?

TABLEBDB‘ABCD’

1)MOVAX,TYPEFLDB

2)MOVAX,TYPETABLEA

3)MOVCX,LENGTHTABLEA

4)MOVDX,SIZETABLEA

5)MOVCX,LENGTHTABLEB

9、指出下列伪指令表达方式的错误,并改正之。

1)MYDATASEGMENT

……….

ENDS

2)MAIN-PROCPROCFAR

…………

ENDMAIN-PROC

MAIN-PROCENDP

10、按要求写出程序框架

1)数据段的位置从0B000H开始,数据段中定义一个有100字节的数组;

2)代码段中制定段寄存器,主程序从1000H开始,给有关段寄存器赋值;

3)调用4CH系统功能子程序结束程序。

4)程序结束。

11、一数据段定义为:

DATASEGMENT

S1DB0,1,2,3,4,5

S2DB‘12345’

NBDB3DUP

(2)

NWDW120,-256

PDW-1

DTATENDS

(1)画出该数据段中数据的存储方式

(2)在下表中填写各变量的偏移地址和个变量的值

变量名

偏移地址

变量的值

S1

S2

NB

NW

P

(3)填写表中程序段各指令执行后,目的寄存器的值,并指出源操作数所使用的寻址方式。

程序段

目的寄存器的值

源操作数的寻址方式。

MOVBX,OFFSETS1+3

MOVSI,OFFSETS2

MOVBP,NW+2

MOVDX,WORDPTRNB

MOVAL,[SI+3]

MOVAH,[SI+BX+1]

MOVCH,BYTEPTRNW+3

12、设AX=1122H,BX=3344H,CX=5566H,SS=009BH,SP=0040H,下述程序段执行后AX,BX,CX和DX4个通用寄存器的内容是多少?

画出堆栈的物理地址及其存储内容和SP指向的示意图。

PUSHAX

PUSHBX

PUSHCX

POPBX

POPAX

POPDX

13、编写将26个英文字符‘ABC……Z’存到字节变量TABLE开始的存储区中去的程序。

14、编写一个子程序,使其可以显示以0结尾的字符串,同时要求子程序的入口参数DS:

DX为待输出字符串的首地址。

15、编写一个程序,使其可以把屏幕上显示的字母经过大小写转换后,再显示出来。

16、编写子程序时需对一些寄存器进行保护和恢复,若在某子程序的开始处有如下程序段,试写出在子程序结束时恢复现场的程序段。

FUNPROC

PUSHAX;保护现场

PUSHBX

PUSHCX

PUSHDX

……….

;恢复现场

RET

FUNENDP

17、读程序,写出运行结果

1)TABLEDW10,20,30,40,50

ENTRYDW3

…………

MOVBX,OFFSETTABLE

ADDBX,ENTRY

MOVAX,[BX]

上面程序段执行后,BX=,AX=。

2)MOVAX,62A0H

ADDAX,4231H

上面程序段执行后,AX=,SF=,CF=,OF=,ZF=。

3)DA1DB‘ABCDEFGH’

………

MOVDI,OFFSETDA1

MOVAL,’D’

MOVCX,8

NEXT:

CMP[DI],AL

JZEXIT

INCDI

LOOPNEXT

MOV[DI],’C’

写出上面程序段执行后DA1各字节中的数据。

4)设寄存器AL,BL,CL中内容均为34H,

ANDCL,0FH

ORBL,0FH

RORAL,CL

执行上述指令序列后,AL=______,BL=________,CL=_________。

18、程序填空题

1)以STRING为首址的字节单元中,存放了一个字符串,字符串以0结尾,下面程序把字符串中的所有的大写字母转换为小写字母。

DATASEGMENT

STRINGDB‘HOWAREYOU!

’,0

CODESEGMENT

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETSTRING

AGAIN:

MOVAL,[SI]

ORAL,AL

JZOK

CMPAL,’A’

JBNEXT

CMPAL,’Z’

JANEXT

MOV[SI],AL

NEXT:

INCSI

OK:

MOVAH,4CH

INT21H

CODEENDS

2)设数据段中AREA1开始存放了10个字节单元的数据,下面程序段把这10个字数据传送到附加段中AREA2开始的10个字节单元。

MOVAX,SEGAREA1

MOVDS,AX

MOVDI,OFFSETAREA2

     MOVES,AX

MOVCX,10

NEXT:

MOVAL,[SI]

MOVES:

[DI],AL

DECCX

JNZNEXT

3)下面的子程序统计一个8位二进制数中的为1的为的个数。

调用该子程序时,8位二进制数存放在AL中。

子程序返回时,求出的个数存放在BL中,要求AL的内容保持不变。

填充程序中的空白,除非必要,不要写标号。

MOVBL,0

MOVCL,8

A1:

SHLAL,1

JNCA2

A2:

DECCL

JNZA1

POPAX

NUMENDP

4)下面程序段完成功能:

从键盘输入一个字符,然后输出在屏幕上。

读程序段,完成程序。

MOVAH,

I

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2