文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言期末考试试题与答案

汇编语言期末考试试题与答案

汇编语言期末考试试题与答案
汇编语言期末考试试题与答案

汇编语言模拟试题及答案

一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)

1.指令JMP FAR PTR DONE属于参考答案为:C

A.段内转移直接寻址

B.段内转移间接寻址

C.段间转移直接寻址

D.段间转移间接寻址

[解析]略

2.下列叙述正确的是参考答案为:C

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令

[解析]对于无符号数和有符号数的比较都采用CMP指令;

CMPS指令是串比较指令;

对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;

对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元

的物理地址是参考答案为:C

A.12CSBH

B.12B6BH

C.12C59H

D.12BFEH

[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2

即12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为:C

A.MOV AL,[BX+SI]

B.JMP SHORT DONI

C.DEC [BX]

D.MUL CL

[解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如

DEC BYTE PTR [BX] 或 DEC WORD PTR [BX] 但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

[解析]循环参数置初值,应在进入循环以前给出。

6.条件转移指令JNE的测试条件为参考答案为:A

A.ZF=0

B.CF=0

C.ZF=1

D.CF=1

[解析]略。

7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为参考答案为:D

A.BX或CX

B.CX或SI

C.DX或SI

D.SI或DI

[解析]略

8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。参考答案为:A

A.数据段中偏移量为3236H的字节

B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节

D.附加段中偏移量为3236H的字节

[解析]指令中的源操作数的寻址方式是相对基址变址寻址,且由于其中的基址寄存器采用的是BX,所以

源操作数是在数据段中,其偏移量为:

BX+SI+2=2000H+1234H+2=3236H 9.执行如下程序:

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)= 参考答案为:C A.99

B.100

C.101

D.102

[解析]1)在进入循环之前,有三条指令分别初始化寄存器:AX为0、BX为1、CX为100;

2)由于循环的控制部分采用的是LOOP指令,该指令有使CX减1,并判断其是否为0的功能,所以可知该循环的执行次数为100次;

3)循环体的主要功能是每次循环使AX中的内容累加BX的内容,并使BX的内容加1。

4)直到最后一次(即第100次)循环时,加到AX中的BX的内容为100,且使BX加1,即变为101后退出循环体。所以当执行完该段程序后,BX的内容为101。

5)该段程序的功能是(AX)=1+2+……+100=5050

10.上题的程序执行后(AX)= 参考答案为:B

A.5000

B.5050

C.5100

D.5150

[解析]请参看上题中的分析。

正确答案:B。

11.对于下列程序段:

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN

也可用______指令完成同样的功能。参考答案为:A

A.REP MOVSB

B.REP LODSB

C.REP STOSB

D.REPE SCASB

[解析]该段程序的功能是将SI所指向的数据段中的数据顺序传送给DI所指向的附加段的一段数据区中,并且每次传送一个字节,即实现了字节串传送的功能,所以也可以使用REP MOVSB指令来完成同样的功能。

12.下面指令序列执行后完成的运算,正确的算术表达式应是

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL 参考答案为:D A.y=x2+1

B.x=y2+1

C.x=y2-1

D.y=x2-1

[解析]该段程序的第一条指令的功能是将X传送给AL;

第二条指令的功能是将AL的内容左移1位,即使得AL的内容扩大2倍;

第三条指令的功能是使AL的内容减1;

第四条指令的功能是将AL传送给Y;

综上所述该程序完成的运算是Y=2X-1。

13.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。参考答案为:B

A.占内存空间小,但速度慢

B.占内存空间大,但速度快

C.占内存空间相同,速度快

D.占内存空间相同,速度慢

[解析]1)宏指令简化程序的书写,不节省程序存储空间,但执行时间比子程序短。

2)子程序简化程序的书写,也节省程序的存储空间,但执行时间比宏指令长。

14.在程序执行过程中,IP寄存器中始终保存的是参考答案为:B

A.上一条指令的首地址

B.下一条指令的首地址

C.正在执行指令的首地址

D.需计算有效地址后才能确定地址

[解析]在程序运行过程中,它始终指向下一条指令的首地址,它与CS代码段寄存器联合确定下一条指令的物理地址。

15.PSW寄存器中共有______位条件状态位,有______

位控制状态位。参考答案为:A

A.6、3

B.3、6

C.8、4

D.4、8

[解析]PSW有6位条件状态位:AF、CF、ZF、PF、SF、OF;

PSW有3位控制状态位:IF、TF、DF

16.下列指令执行时出错的是参考答案为:A

A.ADD BUF1,BUF2

B.JMP DWORD PTR DAT [BX]

C.MOV AX,[BX+DI] NUM

D.TEST AL,08H

[解析]ADD指令的两个操作数不能同时是存储器操作数,所以选项A中的指令是错误的。

17.已知(AX)=1234H,执行下述三条指令后,(AX)= 参考答案为:D

MOV BX,AX

NEG BX

ADD AX,BX

A.1234H

B.0EDCCH

C.6DCCH

D.0000H

[解析]第一条指令的功能是将AX→BX,即BX中的内容为1234H;

第二条指令的功能是对BX求补,即BX中的内容变为-1234H;

第三条指令的功能是AX+BX→AX,即

1234H+(-1234H)=0→AX;

所以执行三条指令后,AX的内容为0。

18.在下列指令中,______指令的执行会影响条件码中的CF位。参考答案为:D

A.JMP NEXT

B.JC NEXT

C.INC BX

D.SHL AX,1

[解析]JMP、JC指令不任何影响状态标志位;

INC指令执行结果除不影响CF外,其余状态标志位(AF、OF、PF、SF、ZF)都受影响。

SHL指令使CF=O,OF=O,影响ZF、SF、PF 标志位,AF无定义。

19.串指令中的目的操作数地址是由______提供。参考答案为:C

A.SS:[BP]

B.DS:[SI]

C.ES:[DI]

D.CS:[IP]

[解析]略

20.将DX的内容除以2,正确的指令是参考答案为:C

A.DIV 2

B.DIV DX,2

C.SAR DX,1

D.SHL DX,1

[解析]选项A中的的指令执行的操作是:AX/2;

选项B中的的指令书写格式不正确;

选项C中的的指令执行的操作是:将DX的内容右

移一位,将使DX的内容缩小为原先的1/2,即将DX的内容除以2;

选项D中的的指令执行的操作是:将DX的内容左移一位,将使DX的内容扩大为原先的2倍,即将DX的内容乘以2。

[解析](1)指令:SHR DX, 1 使DX的内容向右移动了一位,因此DX的内容变为0000’0000’0101’1100B,即005CH。

(2)指令:RCR DL, 1 使DL的内容向右循环带进位移动了一位,DH的内容不变,因此DX的内容变为0000’0000’1101’1100B,即00DCH。

(3)指令:RCL DX, CL 使DX的内容向左循环带进位移动了3位,因此DX的内容变为0000’0101’1100’1100B,即05CCH。

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

答:(1)MOV AL, 25H

(2)SHL AL, 1

(3)MOV BL, 15H

(4)MUL BL

最后,(AX)=612H =1554

[解析]1)将AL的内容左移1位,将使它的内容扩大2倍,即使AL的内容乘以2。

2)最后,AX的内容应为25H*2*15H=612H=1554

3.写一程序段,求双字长数DX∶bX的相反数。

答:NEG DX

NEG AX

SBB DX, 0

[解析]求双字长数DX:AX相反数,即对其求补,所以应实现的操作是:

(DX:AX) ← 0-(DX:AX)

即 0 : 0

-) DX : AX

将上面的算式分解后,即为对DX求补,对AX求补,并从DX中减去将AX求补时产生的借位。所以相应的指令就是:

NEG DX

NEG AX

SBB DX, 0

三,程序分析题(每小题6分,共36分)

1.现有如下程序段:

DATA SEGMENT DA3 E QU 1234H

ORG 0020H DA4 E QU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS 注意:程序是从左到右看,先把左边的程序段看完了再

看右边的程序段。下面的程序段以相同的方法进行读解。

请回答:(1)该程序段已占有的存储字节数是多少?

(2)符号名DA4的值是多少?符号名DA5的值是多少?

答:(1) 该程序段已占有的存储字节数是8个字节。

(2) 符号名DA4的值为2,符号名DA5的值是0026H。

[解析]1)伪指令ORG 0020H,设置存储单元起始偏移地址为0020H;

2)符号名DA1的值(即所对应存储单元的偏移地址)是0020H,该数据区的类型为字,有2个字数据,所以共占用4个字节;

3)符号名DA2的值(即所对应存储单元的偏移地址)是0024H,该数据区的类型为字节,有2个字节数据,所以共占用2个字节;

4)经EQU定义的符号名DA3、DA4不占用存储空间,“$”用来表示当前地址计数器的值(0026H),可它们的值分别为DA3=1234H, DA4=2。

5)符号名DA5的值(即所对应存储单元的偏移地址)是0026H,该数据区的类型为字节,有2个字节数据,所以共占用2个字节;

6)综上所述,该程序段共占有的存储字节数8个字节。

2.执行下列程序段后,回答问题。

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

…MOV C H,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=______,(BX)=______,(CX)=______。

答:(AX)=0012H (BX)=1221H (CX)=0200H

[解析]1)指令MOV AX, NUM的功能是将NUM 单元的字内容12H传送给AX,使得(AX)=0012H;

2)指令MOV BX, OFFSET NUM的功能是将NUM单元的偏移地址1221H传送给BX,使得(BX)=1221H;

3)指令MOV CL, BYTE PTR NUM+1的功能是将NUM+1(1222H)单元的字节内容(即NUM字单元的高字节)00H传送给CL,使得(CL)=00H;

4)指令MOV CL, TYTE NUM的功能是将NUM 字单元的类型字节数2传送给CH,使得(CH)=02H;

5)综合第4和第5点,可知CX寄存器的内容为0200H。

3.阅读如下程序:

ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0

NUM EQU $ -ADRR LOOP Z DON

RETT DB?JNZ N EXT

MOV BL,OFFH

MOV CX,NUM NEXT:MOV RETT,BL

MOV BX,-1 HLT

DON:INC BX

请问:(1)该程序完成的功能是什么?

(2)程序执行后指出RETT字节单元中的内容是什么?

答:(1) 在以ADRR为起始地址的数组中,查找第一个非0数据。

(2) 若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将OFFH送入RETT 单元中。

[解析]1)程序的前3条指令,用于定义数据:

以ADRR为起始地址的数组;

NUM的值为ADRR数组的数据个数;

RETT是一个空的字节单元

2)该程序的主体是一个循环,该循环的主要功能是在数组ADRR中第一个非0数据。如果是由于找到,则将第一个非0数据在数组中的偏移量送入RETT单元中;若没找到非0数据,则将OFFH送入RETT单元中。

4.现有一子程序:

SUB1 PROC PLUS:TEST BL,80H

TEST AL,80H (检测AL中的数值最高位) JE EXITO

JE PLUS XCHANGE :XCHG AL,BL

TEST BL,80H EXITO:RET

JNE EXITO SUB1 END P

JMP XCHANGE

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=______,BL=______。

答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。

(2) AL=77H, BL=9AH

[解析]1)数据是以二进制的形式存储在计算机中的。数据对应的二进制数的最高位是数据的符号位:若为0表示该数为正数,若为1表示该数为负数;

2)TEST AL, 80H 和 TEST BL,80H指令是在测试AL和BL的最高位(即符号位)的状态是1还是0。

3)若两个数的最高位(即符号位)的状态不同的时候(即两数为异号),则执行XCHANGE标号所对应语句,即交换AL和BL中的内容。

4)否则若两个数的最高位(即符号位)的状态相同的时候(即两数为同号),则执行EXIT0标号所对应语句,程序结束,即AL和BL中的内容不被。

5)所以第二问中,AL=9AH,BL=77H:AL中的数据的最高位为1,BL中的数据的最高位为0,即两个数为异号,所以要交换AL和BL中的内容,即AL=77H,BL=9AH。

5.阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]

RESULT DB?J NG NEXT

MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI

MOV CX,[SI] LOOP LOP1 INC SI M OV RESULT,AL

MOV AL,[SI] HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

答:(1) 该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。

(2) 该程序的循环次数是1FH(31)。

[解析]1)指令LEA SI, BLOCK的功能是使SI指向了BLOCK数组的首单元;

2)指令MOV CX, [SI]的功能是将SI指向单元的内容20H传送给CX,即(CX)=20H;其后又有指令DEC CX,使得CX的内容变为1FH;再看循环体的控制部分采用的指令是LOOP,可知,该循环的执行次数为1FH 次;

3)循环体的主要功能是将AL中的内容与[SI]所指向数组的每一个数据进行比较,从数组中选出最小数保存在AL中。

4)由于比较后采用的转移指令是JNG,所以该程序处理的显然是一组有符号的数据。

6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。

ORG 100H

BLOK DW X1,X2,…,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

答:RESULT+2字存储单元的内容是MAX(X1, X2, … XN)

BX= 100H + 2×(COUNT-1)

程序循环次数= COUNT

[解析]1)该程序段的开始4条指令定义了以下数据:

以BLOK为起始地址的字数组,该数组首单元的偏移地址(即BLOK)为 100H;

COUNT的值为BLOK字数组的数据个数;

RESULT存储区的第一个字的内容为COUNT,即BLOK字数组的数据个数;第二个字的内容为空。

2)循环体的主要功能是从BLOK字数组中找出最大数送入RESULT的第二个字单元中;

3)循环次数为数组中数据的个数,即COUNT个。

4)当循环结束后,BX中将存放最后一个字数据的偏移地址:首字偏移地址+末字与首字的相隔的字节数,即100H + 2×(COUNT-1)。

四,程序填空题(注意:下列各小题中,每空只能填一条指令!每小题6分,共12分)

1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。

LEA BX,TABLE (2)

MOV CX,10 JC END0

MOV SUM,AX DON:INC BX

MEXT:(1)(3)

ADC AH,0 ENDO:HLT

JNC DON

答:(1) ADD AL, [BX]

(2) MOV AX, SUM

(3) LOOP NEXT

[解析]1)程序的前三条指令的功能分别是:

将表TABLE的首址传送给BX;

将循环次数传送给计数器CX;

将AX的原值保存在SUM单元中;

以上指令实现了设置循环初始参数的功能。

2)标号NEXT所对应的第一个空白处就是循环体的第一条指令。根据题目的要求——求表中前10个字节数的总和,可知循环每次应实现将表TABLE中的数据按字节加法的方式进行累加到AL中,并且将字节加法产生的进位加到AH中。所以第一个空白处应填入指令:

ADD AL, [BX]

3)程序的第五条指令实现的是判断求得的和是否超过AX寄存器的容量。

4)如果有进位(即已超过AX寄存器的容量),则执行第二个空白处的指令,根据题目当出现此种情况时,使AX内容不变,即恢复其原值,因此第二个空白处应填入指令:MOV AX, SUM。

5)如果没有进位(即未超过AX寄存器的容量),则转DON。程序将使BX的内容加1,即使其指向下一个表中的字节数据。接下来就应该将计数器CX减1,并判断是否继续下一次循环。因此,第三个空白处应填入指令: LOOP NEXT。

2.BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。

MOV CX,32H

LEA SI,BEG

MOV DI,SI

(1)

DON:MOV AL,[SI]

(2)

MOV [SI],AL

(3)

DEC DI

LOOP DON

HLT

答:(1) ADD DI, 99

(2) XCHG AL, [DI]

(3) INC SI

[解析]1) 题目要求:将以BEG为起始地址的区域中的100个字节数据首尾颠倒存放。例如,如果原先为X1,X2, X3,…, X98, X99, X100,则首尾颠倒后将变为X100, X99, X98,…,X3, X2,X1。

2) 颠倒的方法是:将X1与X100对调、X2与X99对调、X3与X98对调、……,即将前一半的数据与后一半相应位置的数据对调。这个过程每次处理两个数据,所以共有(100/2=)50对数据对调。

3) 根据以上分析可知,这个循环将进行50(32H)次,每次将相应的两个数据对调,这两个数据可分别由两个寄存器来指向。

4) 阅读程序可知,SI寄存器指向前一半中的某个数据,DI寄存器指向后一半中对应的数据。在循环的初始化部分,使应计数器CX的值为50(或32H),SI指向第一个数,DI指向最后一个数,所以第一个空白处应填入指令:ADD DI, 99。

5) 在循环体中,应首先交换SI和DI所指向单元的内容,然后使指针SI加1、DI减1,所以第二、三个空白处应填入指令:

① XCHG AL, [DI]

② INC SI

五,编制程序题(第1小题6分,第2小题14分,共20分)

1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

答:1.BEGIN:MOV AH,1

INT 21H

CMP AL,’a’

JB STOP

CMP AL,’z’

JA STOP

SUB AL,20H

MOV DL,AL

MOV AH,2

INT 21H

JMP BEGIN

STOP:RET

[解析]1)该程序设计的主体应是一个循环——当输入字符的是小写字母(a ~ z)时,就将其转换为大写字母来显示,此过程循环进行,直到当输入的不是小写字母时,程序结束。

2)输入一个字符的可使用DOS的1号功能实现:

MOV AH, 1

INT 21H

该DOS调用执行完后,会将输入的字符的ASCII 码值送入AL寄存器。

3)判断输入的是否为小写字母(a ~ z)的方法:

CMP AL, ‘a’

JB STOP ;不是小写字母时,转STOP

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV 2 ; B.DIV DX,2 ; C.SAR DX,1; D.SHL DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

完整word版,汇编语言期末考试试题及

汇编语言模拟试题及答案 一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.指令JMP FAR PTR DONE属于参考答案为:C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS 指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP 指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用 JAE/JNB指令 [解析]对于无符号数和有符号数的比较都采用CMP指令; CMPS指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:C A.12CSBH B.12B6BH C.12C59H D.12BFEH [解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+(128-1)×2 即12ABH×10H+00ABH+(128-1)×2=12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C 中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如 DEC BYTE PTR [BX]或DEC WORD PTR [BX] 但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。5.在进行二重循环程序设计时,下列描述正确的是参考答案为:AA.外循环初值应置外循环之外;内循环初值应置内

汇编语言期末考试试题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址 C.物理地址D.逻辑地址 2.某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 3.执行后使BX=0的同时也使CF=0,OF=0的指令是() A.XOR BX,BX B.OR BX,BX C.AND BX,BX D.CMP BX,BX 4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是() A.CX≠0且ZF=1B.CX≠0且ZF=0 C.CX≠0或ZF=1D.CX≠0或ZF=0 5.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是() A.DAA校正指令的功能已自动加在AH中 B.进位值在AF中,校正后根据AF内容再加在AH中 C.进位值在CF中,校正后根据CF内容再加在AH中 D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中 6.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是() A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C.指令AND AX,OFH执行后,分离出AL低四位 D.NOT AX,执行后,将AX清0 7.在执行下列指令时,需要使用段寄存器DS的指令是() A.STOSW B.ADD AL,CL C.NEG BX D.INC DA[BX] 8.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 9.完成对CL寄存器的内容乘以4的正确操作是() A.ROL CL,1B.MUL4 ROL CL,1 C.SHL CL,1D.MOV CL,2 SHL CL,1SHL CL,CL 10.下面各传送指令中,正确的是() A.MOV[DI],[SI]B.MOV[DX+DI],AL C.MOV WORD PTR[BX],0100H D.MOV AL,BX 11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法() A.名字的第一个字符可以是大写英文字母及小写英文字母 B.名字的第一个字符可以是字母、数字及、@、_ C.名字的有效长度≤31个字符 D.在名字中不允许出现$

2016微机原理与汇编语言课程设计参考题目(1)

微机原理课程设计题目与要求 微机原理课程设计说明: 1. 要求使用 A4 纸打印,必须有封面和目录。 封面内容有课设题目、班级、学号、姓名、指导教师、日期等内容。 2. 课设内容一般应包含如下部分: ①课设目的、内容; ②问题分析、设计思路及原因; ③电路设计及功能说明,硬件原理图(包括接口芯片简介); ④软件部分的程序流程图,算法和使用的编程技巧; ⑤汇编源程序清单,对关键的语句(段)要给出简洁的注释; ⑥设计过程中的主要难点(自己遇到的)及解决思路和办法; ⑦课设结果及分析; ⑧收获、体会和建议。 选题规则: 1-2 班同学按顺次排号,名单附件2,一共88个人,每组4人,分22组,共22个题目,每组选举一个联系人,代表本组抽选题目,并加入讨论群,用于讨论实验事宜。 论文要求: 1.必须采用统一的稿纸。 2.封面按照附件1标准格式书写; 3.课程设计(论文)必须明确包含:题目、题目分析、硬件电路图(仅硬件题目提交)件流程框图、设计思路说明、程序清单(需加必要解释); 4.硬件电路图用A4纸单独绘制,统一装订在论文中; 5.题目相同的论文必须有不同之处,否则所有完全相同的论文都以0分计。 成绩评定:课程设计成绩分两部分,设计报告占40%,设计作品占60%(演示)。 硬件演示软件平台:Proteus、Labview或其他PC平台。

题目1 编程显示学校图书馆广场雕像。 用字符组成汽车图形,在屏幕显示从左向右开动的汽车。 题目2 人名排序程序。 从键盘接收十个人名,字母上升次序显示所输入的人名,每一个人名占一行。 题目3 多功能密码锁 密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示 00 字样。当输入密码错误时,发出错误警告声音,同时显示FF 字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。 设计任务: 1、选用 8086 和适当的存储器及接口芯片完成相应的功能。 2、用 LED 显示器显示电子锁的当前状态。 3、画出详细的硬件连接图。 4、给出程序设计思路、画出软件流程图。 5、给出地址分配表。 6、给出所有程序清单并加上必要注释。 7、完成设计说明书(列出参考文献,所用器件型号) 题目4 汽车倒车测距仪 设计内容及要求: 设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近; ①开机后先显示“———” ,并有开机指示灯。 ② CPU 发射超声波 1ms,然后显示 60ms;即1ms+60ms 为一个工作周期,等待回波,在次周期内完成一次探测。

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令 JMP FAR PTR DONE 属于 ( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是 ( A.对两个无符号数进行比较采用CMP 指令 ,对两个有符号数比较用CMP S 指令 B.对两个无符号数进行比较采用CMPS 指令 ,对两个有符号数比较用CM P 指令 C.对无符号数条件转移采用JAE/JNB 指令 ,对有符号数条件转移用JGE/J NL 指令 D.对无符号数条件转移采用JGE/JNL 指令 ,对有符号数条件转移用JAE/J NB 指令 3.一个有 128 个字的数据区 ,它的起始地址为 12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是 ( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中 ,不正确的是 ( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是 ( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令 JNE 的测试条件为 ( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为 ( A.BX 或 CX

《汇编语言程序设计》期末复习题答案_57431457509182192

《汇编语言程序设计》复习题(答案指导/带页号)一、选择(30题) 1.下列是8位带符号二进制数的补码,其中最大的是( B )。参见P22 A、10001000 B、00000001 C、00000000 D、11111111 2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现 ( C )参见P157、158 A、占内存空间小,但速度慢 B、占内存空间相同,速度快 C、占内存空间大,但速度快 D、占内存空间相同,速度慢 3.数据定义为:EE DB 3,4 CC DW 3456H,6789H 执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B )参见P27、63、64 A、0304H B、5604H C、3404H D、3456H 4.有如下指令序列: MOV AL,95H MOV CL,2 SAR AL,CL 上述指令序列执行后,AL的内容是( D )参见P95 A、05H B、25H C、24H D、0E5H 5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D )参见P23、15 A、A>B>C B、 A

汇编语言课程设计报告

农林大学金山学院 课程设计报告 课程名称:汇编语言课程设计 课程设计题目:动画设计“我爱大自然”姓名: 系:信息与机电工程系 专业:电子信息工程 年级:2008级 学号:082230066 指导教师:\ 职称:助教 2009~2010学年第二学期

目录 1 课程设计的目的 (2) 2 课程设计的要求 (2) 3课程设计报告容 (2) 3.1设计思路 (2) 3.2程序流程图 (2) 3.3设计源程序 (5) 3.4动画示意图 (19) 4 总结 (20) 5参考文献 (20) 6评分标准 (21)

动画设计“我爱大自然” 一、课程设计的目的 《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是: 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求 1)具备初步的独立分析和解决问题的能力; 2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法的能力; 4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风; 5)设计的题目要求达到一定工作量,并具有一定的深度和难度; 6)编写出课程设计说明书。 三、课程设计报告容 (一)设计思路 “我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。 这样,整个程序就被分为几个子程序的有机统一。根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

汇编语言试题及答案.

一,单项选择题(每小题1分,共20分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令JMP FAR PTR DONE属于( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是( A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中,不正确的是( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( A.BX或CX

B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:( MOV AX,0 MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX=( A.99

汇编语言期末考试试题及答案

汇编语言模拟试题及答案 一,单项选择题 (在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20 分) 1.指令JMP FAR PTR DONE 属于参考答案为:C A .段内转移直接寻址 B ?段内转移间接寻址 C .段间转移直接寻址 D ?段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A ?对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMPS 指令 B ?对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CMP 指令 C .对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D .对无符号数条件转移采用JGE/JNL 指令,对有符号数条件转移用JAE/JNB 指令 [解析]对于无符号数和有符号数的比较都采用CMP 指令; CMPS 指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转 移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH ,请给出这个数 据区最末一个字单元的物理地址是参考答案为:C A . 12CSBH B . 12B6BH C. 12C59H D . 12BFEH [解析]末字与首字相隔(128- 1 =) 127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+( 128 —1) >2 即12ABHX 10H + OOABH +( 128 —1) X2 = 12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A . MOV AL ,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D . MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的 [BX] ,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX] 但是在题目的选项C 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。 5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A .外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B ?外循环初值应置外循环之内;内循环初值应置内循环之内 C ?内、外循环初值都应置外循环之外

四川大学汇编语言程序设计20152016期末试题(附答案)

四川大学期末考试试题(闭卷) (2015——2016学年第 1 学期)A卷 课程号:课序号:课程名称:任课教师:成绩: 一、单项选择题(本大题共20小题,每小题1分,共20分)提示: 评阅教师得分 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在 下面的表格中。错选、多选或未选均无分。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1.以下寄存器中,哪一个不属于地址指针寄存器?( A ) (A)AX (B)BX (C)SI (D)DI 2.以下标志位中,哪一个不属于状态标志位?( C ) (A)CF (B)OF (C)IF (D)AF 3.以下寄存器中,哪一个用于指示堆栈的栈顶位置?( C ) (A)IP (B)SI (C)SP (D)BX 4.以下寄存器中,哪一个用于提供代码段的段基值?( C ) (A)SS (B)DS (C)CS (D)AX 5.以下指令中,不影响标志位的是哪一条?( D ) (A)INC (B)AND (C)SUB (D)XCHG 试卷编号:

二、多项选择题(本大题共5小题,每小题2分,共10分)提示:在 每小题列出的五个备选项中有二个至五个是符合题目要求的,请将其代码填写 在下表中。错选、多选、少选或未选均无分。 1 2 3 4 5 1.以下哪些指令会影响CF 标志位?( CD ) (A )INC (B )DEC (C )AND (D )SUB (E )JC 2.以下指令中,哪些会访问堆栈段?( ABDE ) (A )CALL (B )RET (C )JMP (D )PUSH (E )POPF 3.假设(AL )=92H ,CF=1,执行指令ADC AL,88H 后,以下结果哪些是正确的? ( ACE ) (A )(AL)=1BH (B )(AL)=1AH (C )CF=1 (D )OF=0 (E )ZF=0 4.假设(AL )=86H ,执行指令SAR AL,1后,以下结果哪些是正确的?( ACDE ) (A )(AL)=0C3H (B )(AL)=0CH (C )CF=0 (D )OF=0 (E )PF=0 5.以下指令中,哪些使用了存储器寻址方式?( BCD ) (A )ADD AL,02H (B )SUB BL,[0104H] (C )INC BYTE PTR [BX] (D )AND AL,[SI] (E )XOR BL,CL 三、判断改错题(本大题共5小题,每小题4分,共20分)提示:下 列各语句可能有语法错误,判断各语句正确与否,对于错误的语句,需解释其错误的原因,对于正确的语句,若做出正确判断则给4分,对于错误的语句,做出正确判断给2分,做出正确的解释再给2分。 1. NEG 145 X NEG 指令不能跟立即数 2. JZ BX X 条件转移指令JZ 不能寄存器寻址,只能跟标号 评阅教师 得分 评阅教师 得分

2013年汇编语言程序设计课程设计

2013年汇编语言程序设计课程设计 一、作业题目 2013年汇编语言程序设计大型作业给出了3道题目,供大家凭自己的兴趣自由选择其中之一完成。这3道作业题目如下: 1.通用进制转换程序 2.两位数加减乘除程序 3.高精度乘法程序 二、交付的文档材料 1.程序系统说明书 内容包括: (1)程序系统总体的功能模块调用图及模块功能说明。 (2)程序系统的详细框图(每个子程序的流程图)。 (3)程序界面图。 (4)程序清单。 2.设计和实现的技术特点、不足和改进的建议 3.课程设计的体会。 4.程序源程序和可执行程序 三、评分说明 独立完成:60分,雷同或抄袭者不及格; 设计技术及技巧使用:25分; 文档质量:10分; 按时完成:5分。 可以自主扩充功能,有创新加分。 四、参考书 1.课本 2.《IBM-PC汇编语言程序设计》清华大学出版社 五、交付时间:第十八周的周五。

题目一通用进制转换程序 一、题目要求 实现不同进制之间的相互转换。(常用进制二、八、十、十六进制) 程序功能: 1.能通过键盘输入任一种进制,有相应的提示信息。 例如please input a Binary data: 2. 输入的数据要有容错检测。 例如:输入的二进制数据为1200,则应该出现错误信息提示。(因为2在二进制中是不允许的 3.输出的数据要有进制选择。 例如:请选择输出数据的进制(0: 二进制,1: 八进制……) 二、重点考察 1.用汇编实现简单的算法。 2.用汇编实现简单的数据结构。 3.可执行程序的参数使用。 4.INT 21H系统功能调用中有关显示与输出的操作 5.综合解决问题的能力。

汇编语言试题及答案

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS 指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP 指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JN L指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JN B指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是() A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:()

汇编语言期末试题

一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.指令JMP FAR PTR DONE属于参考答案为:C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令[解析]对于无符号数和有符号数的比较都采用CMP指令; CMPS指令是串比较指令; 对两个有符号数的条件转移指令应是:JAE、JNB、JBE、JNA; 对两个无符号数的条件转移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:C A.12CSBH B.12B6BH C.12C59H D.12BFEH [解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+(128-1)×2 即12ABH×10H+00ABH+(128-1)×2=12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX] 但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。 5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 [解析]循环参数置初值,应在进入循环以前给出。

汇编语言课程设计-学生成绩管理系统

1、课程设计的目的、任务 《汇编语言》课程设计对于巩固汇编语言理论知识,加强学生的实际动手能力和提高学生综合素质十分必要。课程设计的目的主要是通过程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。 2、软件需求分析和设计 2.1学生成绩管理系统是对学生成绩的管理,其中包括以下几个模块: (1).插入一个数据(插入学生学号以及语数外三个成绩)。 (2)修改一个数据。 (3)删除学生成绩数据。 (4)查找学生成绩。 (5)查看学生成绩的排名 (6)查看学生成绩分布 (7)按esc键退出系统 2.2学生成绩管理系统应该包含以下信息:学号,语文成绩,英语成绩,数学成绩。因此,系统应该提供以下功能: (1)输出显示菜单。 (2)输入学生的成绩 (3)修改学生成绩 (4)删除学生成绩 (5)查询学生成绩 (6)显示学生成绩排名 (7)显示成绩分布统计 (8)按esc键退出系统

2.3依据程序的功能需求,该系统的功能结构图如下 系统功能结构图 2.4 程序流程图:

主程序流程图查找学生成绩

插入学生学号及成绩修改学生的成绩 显示各个学科各分数段的人数 3、程序实现说明

3.1学生管理系统中各子程序如下: (1).输入全部学生学号以及语文,英语,数学三科的成绩。 子程序名:insert 子程序描述:该子程序为输入字程序。系统在开始的时候是没有数据的,通过该子程序可以初始化系统,将学生的学号及成绩输入系统。 代码: insert proc near ;定义进程子程序:插入学生,学号及 成绩 call input ;调用input add n,1 ret insert endp (2).修改输入的成绩。 子程序名:modify 子程序描述:通过子程序修改学生的成绩 代码: modify proc near ;定义进程子程序:修改学生学号,成绩 md1:output mess1 ;输出mess1 shuru ;调用宏shuru:二位数据输入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si] ;先查找输入的学生是否存在 je qq1_1 ;查到的话,就跳转到qq1_1输入修改的值, 也就是重新输入。;结果相等则跳转到qq1_1 add si,1

相关文档
相关文档 最新文档