汇编语言和汇编程序资料.docx

上传人:b****1 文档编号:2442220 上传时间:2022-10-29 格式:DOCX 页数:20 大小:22.70KB
下载 相关 举报
汇编语言和汇编程序资料.docx_第1页
第1页 / 共20页
汇编语言和汇编程序资料.docx_第2页
第2页 / 共20页
汇编语言和汇编程序资料.docx_第3页
第3页 / 共20页
汇编语言和汇编程序资料.docx_第4页
第4页 / 共20页
汇编语言和汇编程序资料.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

汇编语言和汇编程序资料.docx

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

汇编语言和汇编程序资料.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’;否则存放

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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