汇编语言和汇编程序.docx

上传人:b****6 文档编号:13035858 上传时间:2023-06-10 格式:DOCX 页数:24 大小:22.62KB
下载 相关 举报
汇编语言和汇编程序.docx_第1页
第1页 / 共24页
汇编语言和汇编程序.docx_第2页
第2页 / 共24页
汇编语言和汇编程序.docx_第3页
第3页 / 共24页
汇编语言和汇编程序.docx_第4页
第4页 / 共24页
汇编语言和汇编程序.docx_第5页
第5页 / 共24页
汇编语言和汇编程序.docx_第6页
第6页 / 共24页
汇编语言和汇编程序.docx_第7页
第7页 / 共24页
汇编语言和汇编程序.docx_第8页
第8页 / 共24页
汇编语言和汇编程序.docx_第9页
第9页 / 共24页
汇编语言和汇编程序.docx_第10页
第10页 / 共24页
汇编语言和汇编程序.docx_第11页
第11页 / 共24页
汇编语言和汇编程序.docx_第12页
第12页 / 共24页
汇编语言和汇编程序.docx_第13页
第13页 / 共24页
汇编语言和汇编程序.docx_第14页
第14页 / 共24页
汇编语言和汇编程序.docx_第15页
第15页 / 共24页
汇编语言和汇编程序.docx_第16页
第16页 / 共24页
汇编语言和汇编程序.docx_第17页
第17页 / 共24页
汇编语言和汇编程序.docx_第18页
第18页 / 共24页
汇编语言和汇编程序.docx_第19页
第19页 / 共24页
汇编语言和汇编程序.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汇编语言和汇编程序.docx

《汇编语言和汇编程序.docx》由会员分享,可在线阅读,更多相关《汇编语言和汇编程序.docx(24页珍藏版)》请在冰点文库上搜索。

汇编语言和汇编程序.docx

汇编语言和汇编程序

汇编语言和汇编程序

一、回答下列问题

1、何谓汇编语言程序?

何谓汇编程序?

简述汇编程序的功能。

2、什么叫做变量?

变量有哪几种属性?

程序中如何放问变量?

3、什么叫做标号?

标号有哪几种属性?

4、8088汇编语言中有哪几类运算符?

5、什么叫做表达式?

它的运算规则是什么?

6、8088/8086汇编语言程序中段的类型有哪几种?

段定义中定位类型、组合类型和类别名各有什么作用?

7、设VALAEQU200

VALBEQU30

VALCEQU1BH

下列表达式的值各为多少?

(1)(VALA*VALC+VALB)/VALC

(2)(VALAMODVALC-VALB/VALC

(3)(VALBAND0FH)OR(VALBXOR0FH)

(4)(VALAGEVALB)AND0FH

8、根据下列数据定义,各条指令单独运行后,AX的内容是什么?

TABLEADW10DUP(?

TABLEBDB10DUP(?

TABLECDB‘1234’

TABLEDDW1,2,3,4

(1)MOVAX,TYPETABLEA

(2)MOVAX,TYPETABLEB

(3)MOVAX,TYPETABLEC

(4)MOVAX,TYPETABLED

(5)MOVAX,LENGTHTABLEA

(6)MOVAX,LENGTHTABLEB

(7)MOVAX,LENGTHTABLEC

(8)MOVAX,LENGTHTABLED

(9)MOVAX,SIZETABLEA

(10)MOVAX,SIZETABLEB

(11)MOVAX,SIZETABLEC

(12)MOVAX,SIZETABLED

9、执行下列指令后,AX寄存器的内容是什么?

TABLEDW0,100,200,300,400

DISTADW6

(1)MOVBX,OFFSETTABLE

ADDBX,DISTA

MOVAX,[BX]

(2)LEABX,TABLE

MOVAX,2[BX]

(1)MOVSI,4

MOVBX,OFFSETTABLE

MOVAX,[BX][SI]

(2)MOVBX,DISTA

MOVAX,TABLE[BX]

10、画图说明下列语句分配存储空间及初始化的数据值。

(1)BYTE-VARDB‘BYTE’,12,12H,2DUP(0,3DUP

(2))

(2)WORD-VARDW4DUP(0,1,2),-5,‘BY’,‘TE’

11、定义一个数据段的字符变量和数据变量。

(1)TRING为字符串变量:

‘Personalcomputer’

(2)VALD为十进制数字节变量12,99

(3)VALH为十六进制数字变量32H,0FAH

(4)VALZ为10个零的字节变量

(5)VALW为20个字单元

12、根据数据段的定义,答出L值是多少?

它表示什么意义?

(1)BUFADB0

BUFBDB1

LEQUBUFB-BUFA

(2)STADW20DUP(?

LEQULENGTHSTA

13、定义一个数据段,要求如下:

(1)段界起始于字边界

(2)该段与同名逻辑段相邻连接成一个物理段

(3)类别号为‘DATA’

(4)定义数据12,30,‘ABCD’

(5)保留20个字的存储区

二、填空题

1、假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,(232F7H0=3280H,(264E5H)=2450H,则

执行指令JMPBX后,(IP)=;

执行指令JMPTABLE[BX]后,(IP)=;

执行指令JMP[BX][SI]后,(IP)=。

2、在1000H单元中有一条二字节指令JMPSHORTLAB,如果其中偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为;;;

3、数据段中有以下定义:

ARRAY1EQU16H

ARRAY2DW16H

请指出下面两条指令的寻址方式:

MOVAX,ARRAY1;寻址方式。

MOVAX,ARRAY2;寻址方式。

4、下面两个语句的区别在于、。

X1EQU1000H

X2=1000H

5、指令“ANDAX,STR1ANDSTR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是、。

6、指令LOOPZ/LOOPE是结果或发生转移的指令。

而指令LOOPNZ/LOOPNE则是结果或发生转移的指令。

7、调用指令CALL可分为、、和等四种调用。

8、在汇编语言中,一个过程有NEAR和FAR两种属性。

NEAR属性表明主程序和子程序,FAR属性表示主程序和子程序。

9、串处理指令规定源寄存器使用,源串在段中;目的寄存器使用,目的串必须在段中。

10、是过程定义结束伪指令,与配套使用。

是段定义结束伪指令,与配套使用。

11、一个有16个字的数据区,它的起始地址为70A0:

DDF6H,那么该数据区的最后一个字单元的物理地址为H。

12、对于下面的数据定义:

A1DW20DUP(?

A2DB20DUP(?

A3DB‘987654321’

……

MOVAX,LENGTHA1

MOVBX,LENGTHA2

MOVCX,LENGTHA3

各条指令执行后,相应寄存器的内容为:

(AX)=,(BX)=,(CX)=。

13、在数据段定义有一字变量如下:

DATASEGMENT

ARRAYDW2,$+2,5,7,$+6,0DH

DATAENDS

填入数据段ARRAY区存储单元的内容。

14、执行下列指令后:

TABLEDW10,20,30,40,50

ENTRYDW3

……

MOVBX,OFFSETTABLE

ADDBX,ENTRY

MOVAX,[BX]

寄存器(AX)=

四、是非判断题

1、程序在数据段中的定义如下:

DATASEGMENT

NAMESDB‘ABCD’

NAMETDW20

DATAENDS

请判断下列指令是否正确?

正确的填‘A’,错误的填‘B’并说明原因

(1)MOVBX,OFFSETNAMES()

MOVAL,[BX+2]()

(2)MOVAX,NAMES()

(3)MOVAX,WORDPTRNAMES+1()

(4)MOVAL,NAMET()

(5)MOVAL,BYTEPTRNAMET()

(6)MOVAX,DATA()

MOVDS,AX()

(7)MOVAX,SEGNAMES()

(8)MOVBX,DATA()

MOVAL,[BX+3]()

2、下面各题中有无语法错误?

若无语法错误,请在括号中填‘A’,若有语法错误,请在括号中填‘B’,并按其意图修改题中的相应语句。

(1)M1DB1234()

(2)M2DW‘ABCD’()

(3)M3DW50H

MOVAL,M3()

(4)M4EQU10H

MOVM4,AL()

(5)M5DB?

MOVBX,M5

MOV[BX],1000H()

汇编语言程序设计

一、完成下列练习

1、设(DS)=0300H,(CS)=0200H,(IP)=0100H,(BX)=1000H,DISPLACE=2000H,(4000H)=5000H,(6000H)=8000H

确定无条件转换指令的段内转移地址

(1)JMPBX

(2)JMP[BX]

(3)JMPDISPLACE[BX]

2、设AX和BX寄存器中是有符号数,CX和DX寄存器中是无符号数,写出下列条件转移指令。

(1)CX值高于或等于DX值,则转移HIEQU

(2)AX值大于BX值,则转移GREAT

(3)CX值为0,则转移ZERO

(4)AX值小于或等于BX值,则转移SMAEQU

(5)CX值低于或等于DX值,则转移LOWEQU

(6)AX为负值,则转移NEGAT

(7)AX为偶数,则转移IMAGE

3、写出下列串操作指令所替代的指令序列。

(1)REPMOVSB

(2)REPLODSB

(3)REPSTOSB

(4)REPSCASB

4、指出下列指令序列中的错误。

(1)CMPAL,-3

JAINVALID

INVALID:

……

(2)START:

MOVCX,3

SUBAL,10

LOOPSTART

(3)CRAYPROC

PUSHAX

ADDAX,BX

RET

CRAYENDP

(4)INAL,PROT

JPENEXT

NEXT:

……

5、分析执行下列程序段完成什么功能?

(1)BEGIN:

INAL,5FH

TESTAL,80H

JZNEGATIVE

MOVAH,0

JMPSTOP

NEGATIVE:

MOVAH,0FFH

STOP:

HLT

(2)START:

INAL,20H

MOVBL,AL

INAL,30H

MOVCL,AL

MOVAX,0

REPEAT:

ADDAL,BL

ADDAL,BL

ADCAH,0

DECCL

JNZREPEAT

HLT

(3)ASK:

MOVDX,0210H

INAL,DX

TESTAL,48H

JNZASK

INCDX

MOVAL,0FFH

OUTDX,AL

二、编写下列程序

1、数据段定义如下:

DATASEGMENT

FIRSTDB90H,5FH,6EH,69H

SECONDDB4DUP(?

THIRDDB4DUP(?

FORTHDB4DUP(?

DATAENDS

(1)编写程序,将FIRST开始的四个字节十六进制数左移两位,结果存放在SECOND开始的存储区中。

(2)编写程序,将FIRST开始的四个字节十六进制数右移4位,结果存放在THIRD开始的存储区中。

(3)编写程序,求FIRST开始的四个字节十六进制数的补码,结果存放在FORTH开始的存储区中。

2、在内存缓冲区BCDBUF中,存放10个字节压缩的BCD数,编写程序求这10个数的和,结果送SUM缓冲(占用两个字节)。

3、编写程序计算S=2+4+6+……+200。

4、编写将BUFFER为开始的100个连续单元清零的程序。

5、编写程序把SOURCE源数据区的100个数据,存放在DEST目的数据区。

6、将FIRST单元开始的数据块传送到SECOND单元开始的存储区中,若发现传送的数据为0,则结束传送,分两种情况编写程序。

(1)两个数据区不重迭。

(2)两个数据区重迭。

7、编写一个程序,比较两个字符串是否相等。

若两个字符串相等,则在RESULT单元存放字符‘E’;否则存放字符‘N’。

8、编写一个程序,求有20个元素的两个数组之和,并把和数存于新数组SUM中。

9、FIRST和SECOND均为长度10个字节的数组,编写程序将两个数组中的内容交换。

10、一个字符串以‘$’字符结束,编写一个程序统计英文字母A出现的频率(不分大小写)。

三、填空

1、程序段如下:

DATASEGMENT

ORG2000H

TWO=2

NUMDB3,4

WORDSDW1011H,2022H

CHAR1DB‘13’

WORKDB2DUP(?

TENEQU10

CHAR2‘5’

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAINPROCFAR

START:

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAL,TWO

MOVWORK,AL

TWO=TWO-1

ADDAL,TWO

MOVWORK+1,AL

RET

MWINENDP

CODEENDS

ENDSTART

2、下列程序段运行后,A单元的内容为。

DATASEGMENT

ADW0

BDW0

CDW230,20,54

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETC

MOVAX,[BX]

MOVB,AX

MOVAX,2[BX]

ADDAX,B

MOVA,AX

RET

STARTENDP

CODEENDS

ENDSTART

3、分析以下程序段

ADDAX,BX

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPSHORTL5

如果AX和BX的内容给定如下:

AXBX

(1)147B80DC

(2)B56854B7

(3)42C8608D

(4)D0239FD0

(5)94B7B568

该程序执行后,程序转向

(1);

(2);(3);(4);(5)。

4、在下列程序的括号中分别填入如下指令:

(1)LOOPL20

(2)LOOPEL20

(3)LOOPNEL20

TITLEEXLOOP.COM

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,SS:

CODE

ORG100H

BEGIN:

MOVAX,01

MOVBX,02

MOVDX,03

MOVCX,04

L20:

INCAX

ADDBX,AX

SHRDX,1

()

RET

CODEENDS

ENDBEGIN

在上述三种情况下,当程序执行完后,(AX)=

(1)、(BX)

(2)、(CX)=(3)、(DX)=(4)。

5、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q(X,Y)为低位数),下列程序段使2P>Q时,(AX)=2。

请把程序填写完整。

MOVDX,X+2

MOVAX,X

ADDAX,X

ADCDX,X+2

CMPDX,Y+2

(1)L2

(2)L1

CMPAX,Y

(3)L2

L1:

MOVAX,1

JMPEXIT

L2:

MOVAX,2

EXIT:

INT21H

阅读下面的程序,在

(1)的情况下,本段程序的执行结果是(AH)=0;在

(2)的情况下,其结果为(AH)=0FFH。

INAL,20H

TESTAL,80H

JZA

MOVAH,0

JMPB

A:

MOVAH,0FFH

B:

HLT

6、下列程序段是比较AX,BX,CX中带符号数的大小,将最大擞放在AX中。

请将程序填充完整。

CMPAX,BX

(1)NEXT

XCHGAX,BX

NEXT:

(2)AX,CX

JGEOUT

(3)AX,CX

OUT:

……

7、以下程序的功能是

(1),结果存放在

(2)中。

START:

INAL,20

MOVBL,AL

INAL,30H

MOVCL,AL

MOVAX,0

NEXT:

ADDAL,BL

ADCAH,0

DECCL

JNZNEXT

HLT

8、以下程序段的作用是。

STR1DB300DUP(?

STR2DB100DUP(?

……

MOVCX,100

MOVBX,200

MOVSI,0

NEXT:

MOVAL,STR1[BX][SI]

MOVSTR2[DI],AL

SICSI

INCDI

LOOPNEXT

9、如果数据段中有一个如图所示的字节型表TAB,并且有一个名为DISP的字节型内存变量区,请阅读如下指令,它完成的功能。

[DX中高4位换成ASCII码顺序存入DISP中]

MOVCX,4

MOVBX,OFFSETTAB

MOVDI,OFFSETDISP

HT:

SHLDX,1

RCLAL,1

SHLDX,1

RCLAL,1

SHLDX,1

RCLAL,1

SHLDX,1

RCLAL,1

ANDAL,0FH

XLATTAB

MOV[DI],AL

INCDI

LOOPHT

四、选择题

1、对于下列程序段:

AGAIN:

MOVAL,[SI]

MOVES:

[DI],AL

INCSI

INCDI

LOOPAGAIN

也可用指令完成同样的功能。

A)REPMOVSBB)REPLODSB

C)REPSTOSBD)REPESCASB

2、执行下列程序,选择正确的结果:

MOVSP,2000H

MOVAX,0F0H

MOVSI,1234H

MOVDX,5678H

PUSHSI

POPDI

SHLDX,1

TESTAX,DX

PUSHDX

HLT

(1)SP=;

A)2000HB)1FFFH

C)2001HD)1FFEH

(2)DH内容所在存储器的偏移地址为;

A)1FFFHB)1FFEH

C)1FFDHD)1FFCH

(3)DL内容所在存储器的偏移地址为;

A)1FFFHB)1FFEH

C)2000HD)1FFCH

(4)(AX)=;

A)0HB)78H

C)0F0HD)56H

(5)(DI)=。

A)1234HB)5678H

C)2000HD)00F0H

(6)(DX)=;

A)5678HB)0ACFH

C)2B3CHD)0ABF0H

(7)标志位ZF=。

A)0B)1

C)不定

(8)标志位ZF=。

A)0B)1

C)不定

3、下列程序执行后,请选择正确的结果:

10A3H:

2000HXORAL,AL

2002HMOVAX,CS

2004HMOVSS,AX

2006HMOVSP,2F00H

2009HMOVDX,2012H

200CHPUSHDX

200DHCALL2700H

2010HADDCX,DX

2012HHLT

10A3H:

2700HPOPCX

RET

(1)(AX)=

A)10A3HB)2000H

C)2012HD)2799H

(2)(SP)=

A)2F02HB)2F00H

C)2EFEHD)2EFCH

(3)(DX)=

A)2700HB)2F00H

C)2012HD)2010H

(4)(CX)=

A)2700HB)2F00H

C)2010HD)4024H

(5)ZF=

A)1B)0

C)不定D)-1

4、下面是多字节加法程序,第一个数和是8A0BH,第二个数是D705H。

DATASEGMENT

FIRSTDB

(1),

(2),0H

SECONDDB(3),(4)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,(5)

MOVSI,0

(6)

NEXT:

MOVAL,SECOND[SI]

ADCFIRST[SI],AL

INCSI

LOOPNEXT

MOVAL,0

ADCAL,(7)

MOVFIRST[SI],AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请选择正确的答案填入空格中:

(1)A)8AHB)0BH

C)D7HD)05H

(2)A)8AHB)0BH

C)D7HD)05H

(3)A)8AHB)0BH

C)D7HD)05H

(4)A)8AHB)0BH

C)D7HD)05H

(5)A)3B)2

C)1D)4

(6)A)CLCB)CLD

C)STCD)CLI

(7)A)1B)-1

C)0D)0FFH

5、将AL中带符号数乘以10送AL,正确的程序段是。

A)SALAL,1B)ADDAL,AL

MOVBL,ALMOVBL,AL

SALAL,1ADDAL,AL

SALAL,1ADDAL,AL

ADDAL,BLADDAL,AL

C)MOVCL,4D)ADDAL,AL

MOVBX,ALADDAL,AL

SALAL,CLADDAL,AL

ADDAL,BLADDAL,AL

6、交换寄存器SI、DI的内容,正确的程序段是。

A)PUSHSIB)PUSHSI

PUSHDIPUSHDI

POPSIPOPDI

POPDIPOPSI

C)MOVAX,SIMOVBX,SI

MOVSI,DIMOVBX,DI

MOVDI,AXXCHGBX,AX

7、完成41H送[2100H]、42送[2101H]的正确程序段是。

A)MOVAL,41HB)MOVSI,2100H

MOV[2100H],ALMOV[SI],‘A’

INCALINCSI

MOV[2100H],ALMOVAX,‘AB’

C)MOVAX,4241HD)MOVAX,‘AB’

MOV[2100H,AXMOV[2100H],AX

五、是非判断题

1、JMPSHORTNEXT称为近转移。

()

2、段内转移要改变IP、CS的值。

()

3、条件转移指令只能使用于段内直接短转移。

()

4、REPE/REPZ是相等/为零时重复操作,其退出条件是:

(CX)=0或ZF=1。

()

5、假设VAR

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

当前位置:首页 > 人文社科 > 法律资料

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

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