汇编语言和汇编程序Word文档下载推荐.docx
- 文档编号:22919894
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:24
- 大小:22.62KB
汇编语言和汇编程序Word文档下载推荐.docx
《汇编语言和汇编程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《汇编语言和汇编程序Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
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
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、数据段定义如下:
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、程序段如下:
ORG2000H
TWO=2
NUMDB3,4
WORDSDW1011H,2022H
CHAR1DB‘13’
WORKDB2DUP(?
TENEQU10
CHAR2‘5’
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单元的内容为。
ADW0
BDW0
CDW230,20,54
CODESEGMENT
ASSUMECS:
STARTPROCFAR
PUSHDS
MOVBX,OFFSETC
MOVAX,[BX]
MOVB,AX
MOVAX,2[BX]
ADDAX,B
MOVA,AX
STARTENDP
CODEENDS
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
CODE,SS:
CODE
ORG100H
BEGIN:
MOVAX,01
MOVBX,02
MOVDX,03
MOVCX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
RET
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)中。
INAL,20
MOVBL,AL
ADDAL,BL
DECCL
JNZNEXT
8、以下程序段的作用是。
STR1DB300DUP(?
STR2DB100DUP(?
MOVCX,100
MOVBX,200
MOVSI,0
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
ANDAL,0FH
XLATTAB
MOV[DI],AL
INCDI
LOOPHT
四、选择题
1、对于下列程序段:
AGAIN:
MOVAL,[SI]
MOVES:
[DI],AL
INCSI
LOOPAGAIN
也可用指令完成同样的功能。
A)REPMOVSBB)REPLODSB
C)REPSTOSBD)REPESCASB
2、执行下列程序,选择正确的结果:
MOVSP,2000H
MOVAX,0F0H
MOVSI,1234H
MOVDX,5678H
PUSHSI
POPDI
TESTAX,DX
PUSHDX
HLT
(1)SP=;
A)2000HB)1FFFH
C)2001HD)1FFEH
(2)DH内容所在存储器的偏移地址为;
A)1FFFHB)1FFEH
C)1FFDHD)1FFCH
(3)DL内容所在存储器的偏移地址为;
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=。
3、下列程序执行后,请选择正确的结果:
10A3H:
2000HXORAL,AL
2002HMOVAX,CS
2004HMOVSS,AX
2006HMOVSP,2F00H
2009HMOVDX,2012H
200CHPUSHDX
200DHCALL2700H
2010HADDCX,DX
2012HHLT
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)=
C)2010HD)4024H
(5)ZF=
A)1B)0
C)不定D)-1
4、下面是多字节加法程序,第一个数和是8A0BH,第二个数是D705H。
FIRSTDB
(1),
(2),0H
SECONDDB(3),(4)
MOVAX,DATA
MOVDS,AX
MOVCX,(5)
MOVSI,0
(6)
MOVAL,SECOND[SI]
ADCFIRST[SI],AL
MOVAL,0
ADCAL,(7)
MOVFIRST[SI],AL
MOVAH,4CH
INT21H
ENDSTART
请选择正确的答案填入空格中:
(1)A)8AHB)0BH
C)D7HD)05H
(2)A)8AHB)0BH
(3)A)8AHB)0BH
(4)A)8AHB)0BH
(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
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 汇编程序