汇编语言模拟试题文档格式.docx

上传人:b****7 文档编号:21684568 上传时间:2023-01-31 格式:DOCX 页数:36 大小:52.04KB
下载 相关 举报
汇编语言模拟试题文档格式.docx_第1页
第1页 / 共36页
汇编语言模拟试题文档格式.docx_第2页
第2页 / 共36页
汇编语言模拟试题文档格式.docx_第3页
第3页 / 共36页
汇编语言模拟试题文档格式.docx_第4页
第4页 / 共36页
汇编语言模拟试题文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

汇编语言模拟试题文档格式.docx

《汇编语言模拟试题文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言模拟试题文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

汇编语言模拟试题文档格式.docx

B.PUSHAXD.MOVCX,AX

PUSHBXMOVBX,CX

POPAXMOVAX,BX

POPBX

13.定义宏Max,求两个数的最大数。

定义如下:

MaxMacroA,B,C

CMPA,B

JLLESS

MOVC,A

JMPDONE

LESS:

MOVC,B

DONE:

ENDM

则下列调用方式正确的是:

()

A.Maxax,bx,cx

B.CALLMaxax,2,cx

C.Max1,2,cx

D.Maxax,bl,cx

14.8086CPU的工作模式为M1,PentiumCPU复位后到引导OS之间工作模式为M2,引导OS后正常工作模式为M3,在Window98下运行一个DOS程序此时工作模式为M4。

则M1,M2,M3,M4为()

A.实模式,实模式,保护模式,保护模式

B.实模式,保护模式,保护模式,虚拟8086模式

C.虚拟8086模式,实模式,保护模式,保护模式

D.实模式,实模式,保护模式,虚拟8086模式

15.DEBUG调试程序中内存数据显示命令是()

A.U命令B.D命令C.A命令D.E命令

二.填空题。

(20分)

1.在C语言中用“unsignedchara;

signedshortb;

”定义两个变量a,b,则a为无符号字节数,b为16位补码数。

写出a,b两个变量表示的十进制数的范围。

a:

,b:

2.已知AX寄存器的内容为000FH,执行DIVAL后,AL的值为。

3.已知AX寄存器的内容为FFFFH,执行ANDAH,81H后,AH的值为

执行TESTAL,81H后,AL的值为。

4.已知(BX)=0005H,变量Buffer的偏移地址为1000H,当前(DS)=1000H。

CPU在执行MOVAX,Buffer[BX]时,寻址的物理地址为。

5.从1234号端口读入一个字节,并存放到DL寄存器的指令序列为:

6.Li(i=1,2,…,7)为已定义的标号。

现定义地址表AddrTable:

AddrTableDWL1,L2,L3,L4,L5,L6,L7。

那么指令JMPAddrTable[6]转移到的标号为:

7.两个模块中定义的PUBLIC段进行合并的条件是:

相同且相同。

8.模块1中定义了Far型的子程序GlobalFunc,在模块2中要调用GlobalFunc。

为支持模块1和模块2通讯,模块1中使用的伪指令为:

,模块2为:

9.指令序列:

MOVAX,0001H

MOVBX,0002H

PUSHAX

PUSHBX

POPECX

执行完后,32位寄存器ECX的值为:

10.根据下列数据定义伪指令,填写定义的数据在内存单元中的存放形式。

1.STRINGDB‘A’,’B’,’C’,’DEF’

DW‘GH’

2.BUFFERDW1,-1

DD1234H,2000H

3.DATADB2DUP(-1,2DUP(1,2))

三.分析下面程序段,回答指定问题。

(11分)

1.MOVBL,3EH

ANDBL,9AH

ORBL,78H

XORBL,56H

MOVCL,4

RORBL,CL

问:

执行上段程序后,BL=。

2.ORG1001H

DATA1EQUTHISBYTE

DATA2DW$,$+1,$+2,$+3

DATA3DWDATA1

MOVAL,DATA1

MOVBX,DATA2+3

MOVCX,DATA3

执行上段程序后,AL=,BX=,CX=。

3.SUBAX,AX

MOVBX,1

MOVCX,10

A:

ADDAX,BX

ADDBX,3

LOOPA

问:

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

四.编写完成下述功能的程序片段。

(15分)

1.在附加段中定义了一个字节缓冲区Buffer,长度为100。

用串操作指令将这个缓冲区每个字节都置为0FFH。

2.编写程序完成下列框图功能的程序片段。

3.在C语言中定义了一个字节型无符号数组BUFFER,要求用__asm嵌入

汇编程序,来找出其中的最大值,送入变量MAX中。

C程序给出如下,编写嵌入的汇编代码。

intmain()

{

unsignedcharBUFFER[100];

//定义字节型缓冲区

unsignedcharMAX;

//保存结果

__asm{//嵌入汇编语言

//在此处编写嵌入的汇编代码

 

}

return0;

}

五.程序设计。

(编写完整的程序,24分)

1.Buffer缓冲区中有100个有符号Word数,查找中间是否存在数“-1”,如果存在,显示“Y”;

否则,显示“N”。

2.数据区中定义了4个Word变量X,Y,Z和Result,编写一个程序求X、Y、Z三数的平均值(不考虑余数),结果送入Result中。

要求:

求平均值部分写一个子程序Average3;

主程序和子程序之间所有参数都采用堆栈进行传递。

ES_LEFTEQU0001H;

左对齐

ES_CENTEREQU0002H;

居中对齐

ES_RIGHTEQU0004H;

右对齐

ES_MULTILINEEQU0008H;

多行显示

ES_UPPERCASEEQU0010H;

显示大写字母

ES_LOWERCASEEQU0020H;

显示小写字母

ES_PASSWORDEQU0040H;

密码框方式

ES_AUTOVSCROLLEQU0080H;

自动加垂直滚动条

ES_AUTOHSCROLLEQU0100H;

自动加水平滚动条

ES_READONLYEQU0200H;

输入框只读

3.输入框(Edit)控件是Windows窗口程序常用的一种控件,它负责接受从键盘输入的字符。

为控制Edit控件的外观特点,显示和对齐方式等,我们为它定义一些属性,每一个属性用一个Word的常数来表示,该数只有某一位(bit)为1,其它位为0。

Edit控件的所有属性用一个Word型的字来表示,该字的每一位(bit)表示一种相应属性,称该字为属性字。

Edit控件的属性定义如下:

例如属性字0009H表示Edit控件属性为左对齐且多行显示;

属性字0202H表示Edit控件属性为居中对齐且只读。

现假设AX寄存器里面存放要建立的Edit控件的属性字,该属性字包含一些初始属性。

编写一个完整的程序,对该属性字进行处理,来按顺序完成下列功能:

1.为Edit控件添加两个属性ES_LEFT和ES_MULTILINE;

2.测试Edit控件是否有属性ES_RIGHT,如果有,删除该属性;

3.测试Edit控件是否有属性ES_AUTOVSCROLL,如果有,删除该属性;

如果没有,添加该属性;

4.测试Edit控件是否同时具有ES_UPPERCASE和ES_LOWERCASE两个属性。

如果是,显示一个字符串“EditBoxStyleError!

”;

否则,显示一个字符串“EditBoxStyleRight!

5.程序结束。

程序如下:

定义符号常数;

你的代码如下;

模拟试题六参考答案

一.选择题(15*2=30)

CDABADADDDDDADB

二.填空(1-9,每题1’;

10题7’,2+3+2)

1.0-255,-32768-32767

2.1

3.81H,0FFH

4.11005H

5.movdx,1234inal,dxmovdl,al

6.L4

7.段名类型属性

8.publicglobalfuncexternglobalfunc:

FAR

9.00010002H

10.

‘A’

‘B’

‘C’

‘D’

‘E’

‘F’

‘H’

‘G’

01H

00H

FFH

34H

12H

20H

02H

三.分析下面程序段,回答指定问题(11’)

1.0C2H(2’)

2.01H,0710H,1001H(3’)

3.145,31,0(6’)

四.编写完成下述功能的程序片段

1.(5’)

CLD(1’)

MOVCX,100(1’)

MOVAL,0FFH(1’)

LEADI,BUFFER(1’)

REPSTOSB(1’)

2.(5’)

CMPAL,0

JGNEXT(1’)

MOVAH,-1

JMPDONE(1’)

NEXT:

CMPAL,8

JGNEXT2(1’)

MOVAH,0

JMPDONE(1’)

NEXT2:

MOVAH,1(1’)

MOVDL,AH

3.(5’)

MOVAL,BUFFER

MOVECX,100(1’)

MOVESI,0(1’)

AGAIN:

CMPAL,BUFFER[ESI]

JAENEXT(1’)

MOVAL,BUFFER[ESI]

INCESI(1’)

LOOPAGAIN

MOVMAX,AL(1’)

1.(6’)

DATASEGMENT(1’)

BUFFERDW100DUP(?

)(1’)

DATAENDS

CODESEGMENT

START:

ASSUMEDS:

DATA,CS:

CODE

MOVAX,DATA

MOVDS,AX

MOVCX,100

MOVSI,0

CMPBUFFER[SI],-1

JEFOUND(1’)

ADDSI,2(2’)

MOVAH,2

MOVDL,’N’

INT21H

FOUND:

MOVAH,2(1’)

MOVDL,’Y’

MOVAH,4CH

CODEENDS

ENDSTART

2.(9’)

DATASEGMENT(1’)

XDW?

(1’)

YDW?

ZDW?

RESULTDW?

ASSUMEDS:

MOVAX,DATA

MOVDS,AX

SUBSP,2(1’)

PUSHX(1’)

PUSHY

PUSHZ

CALLAVERAGE3

POPRESULT(1’)

AVERAGE3PROCNEAR(1’)

PUSHBP

MOVBP,SP

PUSHDX

PUSHBX

MOVAX,4[BP](1’)

ADDAX,6[BP]

ADDAX,8[BP]

CWD

MOVBX,3

IDIVBX(1’)

MOV10[BP],AX

POPBX

POPDX

POPAX

POPBP

RET6(1’)

AVERAGE3ENDP

3.(9’)

DATASEGMEMT(1’)

STRING1DB‘EditBoxStyleError$’(1’)

STRING2DB‘EditBoxStyleRight$’

ORAX,ES_LEFT(1’)

ORAX,ES_MULTILINE

TESTAX,ES_RIGHT(1’)

JZGOON

XORAX,ES_RIGHT

GOON:

(2’)

XORAX,ES_AUTOVSCROLL

TESTAX,ES_UPPERCASE(2’)

JNZRIGHT

TESTAX,ES_LOWERCASE

PUSHAX

MOVAH,9(1’)

LEADX,STRING1

INT21H

POPAX

JMPDONE

RIGHT:

MOVAH,9

LEADX,STRING2

模拟试题七

1.用来存放下一条将要执行的指令代码段地址的寄存器是()。

A.SPB.ESC.IPD.CS

2.要使串处理指令从高地址向低地址顺序连续执行,应先执行的指令是()。

A.STIB.CLCC.STDD.CLD

3.已知(AL)=41H,(AH)=5AH,CPU执行SUBAL,AH指令后,标志寄存器各位的值正确的是()

4.使状态标志位CF清零的错误指令是()。

A.SUBAX,AXB.CLCC.ORAX,AXD.MOVCF,0

5.下面的数据传送指令中,错误的操作是()。

A.MOVWORDPTR[BX],1000HC.OUT200,AL

B.MOVCX,1000HD.MOV[BP+DI],1000H

6.SAR(算术移位指令)可作一定程度上的除2运算,若AL中的内容为-3,则指令SARAL,1执行后,AL中补码数的值为()

A.-3B.-1.5C.-1D.-2

7.宏MyMacro定义如下:

MyMacroMacroA,B,C

MOVC,B

A.MyMacro[1000H],bx,cx

B.CALLMyMacroax,2,cx

C.MyMacro[1000H],[1002H],cx

D.MyMacroax,bl,1

8.执行下列指令后,SP寄存器的值正确的是()。

MOVSP,2000H

A.1FFFHB.1FFEHC.2001HD.2002H

9.完成BL+CLà

AL的错误操作是()。

A.ADDAL,BLC.XCHGAL,CL

ADDAL,CLADDAL,BL

B.ADDBL,CLD.MOVAL,BL

MOVAL,BLADDAL,CL

10.执行下面指令序列后,正确的结果是()。

MOVAH,40H

ADDAH,AH

ADCAH,AH

A.AH=00HB.AH=100HC.AH=200HD.AH=01H

11.执行下列程序段后,正确的结果是()。

MOVAL,80H

MOVBL,08H

CBW

IDIVBL

A.AH=00HB.AH=0FFHC.AH=00HD.AH=0FFH

AL=10HAL=0F0HAL=0F0HAL=10H

12.完成当BX≥0时转GREAT,当BX<

0时转LITTLE,错误的操作是()。

A.ORBX,BXC.CMPBX,0

JSLITTLEJGEGREAT

GREAT:

LITTLE:

……

B.TESTBX,8000HD.MOVAX,BX

JZGREATJSLITTLE

GREAT:

13.定义如下地址表:

ADDRTABLEDWL1,L2,L3,L4,L5,L6,则指令

JMPADDRTABLE[4]转入的标号是()

A.L2B.L3C.L4D.L5

14.下面指令组完成将字单元BUF1和BUF2的内容互换,错误的操作是()。

A.XCHGBUF1,BUF2C.MOVAX,BUF1

XCHGAX,BUF2

MOVBUF1,AX

B.MOVAX,BUF1D.MOVAX,BUF1

MOVBX,BUF2MOVBX,BUF2

MOVBUF2,AXXCHGAX,BX

MOVBUF1,BXMOVBUF1,AX

MOVBUF2,BX

15.两个模块中分别定义两个逻辑段S1,S2,下列不是S1、S2合并的必要条件的是()

A.S1、S2的组合属性必须都为PUBLIC或者STACK

B.S1、S2的对齐属性必须相同

C.S1、S2的类别必须相同

D.S1、S2的段名必须相同

1.为了方便用户使用外设,IBM-PC机提供了两种典型的例行子程序供用户编程调用,它们是和系统功能调用。

它们都是系统编制的子程序,通过方式来调用所需的子程序。

2.在算术运算中,判断无符号数运算是否溢出应根据标志位,判断有符号数运算是否溢出应根据标志位。

3.8086/8088系统中,一个20位的物理地址是由和组成的。

已知(BX)=0008H,(SI)=0002H,变量Buffer的偏移地址为1000H,当前(DS)=1000H。

CPU在执行XCHGAX,Buffer[BX][SI]时,寻址的物理地址为。

4.80386系统中,(EAX)=00001234H,(EBX)=00000002H,则操作数4[EAX][EBX*4]的地址为:

5.模块1中定义了WORD型的变量BUFFER,在模块2中要直接使用BUFFER。

6.写出对应指令,完成如下功能。

a)将AX的低四位清零,其它不变。

b)将BX的低四位置1,其它不变。

c)将CX的低四位求反,其它不变。

7.用数据定义伪指令定义数据块BLOCK,要求数据依次为:

3个BYTE型的-1,5个WORD型的0,7个DWORD型的1。

8.设有宏定义如下:

SHIFTMACROX,Y

MOVCL,X

SALY,CL

EN

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

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1