汇编语言习题答案 (3)
汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计第四版【课后习题答案】--囮裑為檤第3章汇编语言程序格式〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?〔解答〕伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。
〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?〔解答〕为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。
〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。
〔解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。
汇编语言对大小写不敏感。
如定义字节数和字符串的DB就是伪指令助记符。
〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?〔解答〕汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕⒈编辑文本编辑程序汇编语言源程序.asm⒉汇编汇编程序目标模块文件.obj⒊连接连接程序可执行文件.exe或.com⒋调试调试程序应用程序〔习题3.6〕区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量〔解答〕(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。
(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。
汇编语言试题及参考答案

汇编语言试题及参考答案一、选择题(每题2分,共20分)1. 汇编语言中的指令通常由哪两部分组成?A. 操作码和操作数B. 地址和数据C. 指令和数据D. 操作码和地址答案:A2. 以下哪个不是汇编语言中的寻址方式?A. 直接寻址B. 间接寻址C. 立即寻址D. 寄存器寻址答案:B3. 在汇编语言中,以下哪个指令用于将数据从内存加载到寄存器中?A. MOVB. CMPC. ADDD. SUB答案:A4. 汇编语言中,以下哪个指令用于比较两个寄存器的内容?A. MOVB. CMPC. ADDD. SUB答案:B5. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与立即数相加?A. MOVB. CMPC. ADDD. SUB答案:C6. 汇编语言中的条件跳转指令通常使用哪些条件?A. 零、非零B. 正、负C. 溢出、非溢出D. 所有上述条件答案:D7. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容相减?A. MOVB. CMPC. ADDD. SUB答案:D8. 汇编语言中的循环结构通常使用哪种类型的跳转指令?A. 无条件跳转B. 条件跳转C. 直接跳转D. 间接跳转答案:B9. 在汇编语言中,以下哪个指令用于将一个寄存器的内容与内存中的内容相加?A. MOVB. CMPC. ADDD. SUB答案:C10. 汇编语言中,以下哪个指令用于将一个寄存器的内容与另一个寄存器的内容进行逻辑与操作?A. ANDB. ORC. NOTD. XOR答案:A二、填空题(每题2分,共20分)1. 在汇编语言中,指令MOV AX, BX的作用是将寄存器________的内容复制到寄存器________中。
答案:BX,AX2. 汇编语言中的指令JMP FAR PTR 100H:200H的作用是跳转到内存地址________。
答案:100H:200H3. 汇编语言中,指令CALL的作用是________。
电子科技大学14秋《汇编语言程序设计(本科)》在线作业3答案

一,单选题
1.指令语句中标号的错误定义是( )。
A.在代码段中的名字项定义,后面紧跟冒号
B.用EQU伪指令定义
C.用LABEL伪指令定义
D.由“JMP标号”指令定义
?
正确答案:B
2. XOR AX, AX MOV CX, 5 NEXT: ADD AL, 6 AAA LOOP NEXT上述程序段执行的结果是()。
D. AX=A65DH,CF=1
?
正确答案:A
6. DW 10H DUP(2 DUP(3),300H)上述定义的数据单元中,能构成0303H内容的字存储单元的个数是()。
A. 10H
B. 20H
C. 1EH
D. 0FH
?
正确答案:D
7. 8086/8088的存储器组织是将存储器划分为段,可作为段起始地址的是()。
A. LOOP
B. LOOPE/LOOPZ
C. LOOPNE/LOOPNZ
D. JCXZ
?
正确答案:B
11.设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是()。
A. 4290H
B.0A40H
C.0C290H
D.0C260H
?
正确答案:C
12.堆栈中当前出栈的存储单元地址是()。
A. CX≠0且ZF=1
B. CX≠0且ZF=0
C. CX≠0或ZF=1 CX≠0或ZF=0
?
正确答案:B
5.设AX=0CCBBH,CF=1 AND AX,7FFEH RCR AX,1上述两条指令执行后,AX和CF中的内容分别是()
A. AX=265DH,CF=0
汇编语言第三章答案

3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用BX的寄存器寻址(4) 使用BX的简接寻址(5) 使用BX的寄存器相对寻址(6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH。
3.2 试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。
(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
(5) 把数0B5H与(AL)相加,并把结果送回AL中。
答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址(2) 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCKADD BX, (6–1)*2MOV DX, [BX](2) MOV BX, OFFSET BLOCK 改为:MOV BX, (6-1)*2MOV DX, [BX+(6–1)*2] 也可MOV DX, BLOCK[BX](3) MOV BX, OFFSET BLOCKMOV SI, (6–1)*2MOV DX, [BX][SI]3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
汇编语言样题及答案-修改

汇编语言-习题3一、单项选择题:1.CPU要访问的某一存储单元的实际地址称()A.段地址B.偏移地址C.物理地址D.逻辑地址2.某存储单元的物理地址是12345H,可以作为它的段地址有()A.2345H B.12345H C.12340H D.1234H3.执行后使BX=0的同时也使CF=0,OF=0的指令是()A.XOR BX,BX B.OR BX,BX C.AND BX,BX D.CMP BX,BX4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是()A.CX≠0且ZF=1B.CX≠0且ZF=0C.CX≠0或ZF=1D.CX≠0或ZF=05.在执行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,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清07.在执行下列指令时,需要使用段寄存器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,01H9.完成对CL寄存器的内容乘以4的正确操作是()A. ROL CL,1 B.MUL 4ROL CL,1C. SHL CL,1 D.MOV CL,2SHL CL,1 SHL CL,CL10.下面各传送指令中,正确的是()A.MOV [DI],[SI]B.MOV[DX+DI],ALC.MOV WORD PTR [BX],0100H D.MOV AL,BX11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()A.名字的第一个字符可以是大写英文字母及小写英文字母B.名字的第一个字符可以是字母、数字及、@、_C.名字的有效长度≤31个字符D.在名字中不允许出现$12.要实现使BETA的值为56,应采用语句为()A.BETA DB 56B.BETA DB 56H C.BETA EQU 56D.BETA EQU 56H 13.REPZ CMPSW指令,重复执行的终止条件是()A.CX=0或ZF=0B.CX=0且ZF=0C.CX=0或ZF=1D.CX=0且ZF=114.下面程序段执行后,AL中的内容是()MOV AX,8833HADD AL,AHDAAA.21B.21H C.0C1H D.0DDH15.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()A.ZF=1B.ZF=0C.SF=1D.SF=016.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()A.JNC LOP1B.JA LOP1C.JC LOP1D.JGE LOP117.在下列串操作指令中,同时使用源串和目的串地址指针的指令是()A.STOSW B.LODSW C.SCASW D.CMPSW18.设AL=0AH,下列指令执行后能使AL=05H的是()A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,0FH19.DA1 DW…AB‟,…CD‟,…EF‟,…GH‟()┇MOV AX,DA1+3指令执行后AX中的内容是A.…EF‟B.…CD‟C.…BC‟D.…FC‟20.使用DOS系统功能调用时,使用的软中断指令是()A.INT 21 B.INT 10H C.INT 16H D.INT 21H二、填空题:21.十六进制数0FFF8H表示的十进制正数为________,表示的十进制负数为________。
汇编语言沈美明答案汇编语言第3章答案沈美明

汇编语言沈美明答案汇编语言第3章答案沈美明第三章 80X86的指令系统和寻址方式 1、给定(BX )=637DH,(SI )=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么答案:(1)立即寻址没有(2)直接寻址 7237H(3)使用BX 的寄存器寻址没有(4)使用BX 的间接寻址 637DH(5)使用BX 的寄存器相对寻址 0D5F0H(6)基址变址寻址 8E18H(7)相对基址变址 004FH2、根据下列要求,写出相应的汇编指令(1)把BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器中。
(2)用寄存器BX 和SI 基地址变址寻址方式把存储器中的一个字节与AL 寄存器的内容相加,并把结果送到AL 寄存器中。
(3)用寄存器BX 和位移量0B2H 的寄存器相对寻址方式把存储器中的一个字和(CX )相加,并把结果送回存储器中。
(4)用位移量为0524H 的直接寻址方式把存储器中的一个字与数2A59H 相加,并把结果送回该存储单元中。
(5)把数0B5H 与(AL )相加,并把结果送回AL 中。
答案:(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD [BX][0B2H], CX(4)MOV AX,2A59HADD [0524H] ,AX(5)ADD AL ,0B5H3、写出把首地址为BLOCK 的字数组的第6个字送回到DX 寄存器的指令。
要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答案:(1)寄存器间接寻址MOV BX,OFFSET [BLOCK][0AH]MOV DX ,[BX](2)寄存器相对寻址 MOV SI,OAHMOV DX,[BLOCK][SI] (3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,[BX][SI]4、现有(DS )=2000H,(BX)=0100H,(SI)=0002H,(xx0)=12H,(xx1)=34H,(xx2)=56H, (xx3)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器的内容。
[汇编语言程序设计]试题及答案合集3
![[汇编语言程序设计]试题及答案合集3](https://img.taocdn.com/s3/m/293a426e1711cc7931b71646.png)
汇编语言程序设计试题及答案1.对于有符号的数来说,下列哪个值最大(D)A:0F8HB:11010011BC:82D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D)A:通常由字母打头的字符、数字串组成B:标号长度不能超过31个字符C:?和$不能单独作为标号D:.号不可位于标号首3.8088/8086存储器分段,每个段不超过(D)A.64K个字B.32K个字节C.1兆个字节D.64K个字节4.寻址指令MOV CX,[BX+DI+20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址5.若AX=-15要得到AX=15应执行的指令是(A)A.NEG AXB.NOT AXC.INC AXD.DEC AX6.8086/8088系统执行传送指令MOV时(A)A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)A:NOT B:OR C:AND D:XOR8.下列指令中段默认为堆栈段的是(C)A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]C.SUB[BX],[BP][DI]D.MOV DX,[1000H]9.关于8086/8088微机系列,下列说法哪个是正确的(D)A:一个存储单元由16个二进制位组成,简称字。
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C:在内存空间中,可以无限分配段,且段的大小不受限制。
D:段与段之间可以邻接,也可以重叠。
10.下列关于堆栈的说法,错误的是(D)A:以“先入后出”为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
11.表示过程定义结束的伪指令是(A)A.ENDPB.ENDSC.ENDD.ENDM12.BUF1DB3DUP(0,2DUP(1,2),3)COUNT EQU$-BUF1符号COUNT等价的值是(B)A.6B.18C.16D.913.下列标志位中,可以用来判断计算结果正负的是(B)A:PF B:SF C:DFD:OF14.下列指令正确的是(CD)A.MOV[100H],[BX]B.MOV DS,ESC.ADD V[BX],CXD.MOV AX,34H15.下列哪个寄存器是属于指针寄存器(C)A:SI B:DX C:SPD:ES二、填空题(每小题4分,共20分)1.下列程序段求数组FLD的平均值,结果在AL中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章自测练习一、选择题(四选一)1.表示一条处理器指令所在存储单元的符号地址是C。
A 变量B 常量C 标号D 偏移量2.汇编语言中的变量有多种类型属性,但错误的类型是 B 。
A 字节型byteB 字符型charC 字型wordD 双字型dword3.执行mov bx,seg var指令,BX得到变量var的 B 。
A 物理地址B 段地址C 偏移地址D 内容4.MASM语句中,采用 C 分隔标号和指令。
A 逗号B 分号C 冒号D 空格5.欲设定从偏移地址100H开始安排程序,可使用 A 伪指令。
A org 100hB start=100hC start db 100hD start equ 100h6.与“mov bx,offset var”指令等效的指令是 D 。
A mov bx,varB 1ds bx,varC les bx,varD 1ea bx,var.7.下条语句buf db l0 dup(3 dup(?,10),3,10)汇编后,变量buf占有的存储单元字节数是 B 。
A 100B 80C 40D 208.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是B。
A 0B 0FFFFHC 1D 0FFH9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。
A db`AB'B dw `AB'C db 0ABHD dw 0ABH10.在汇编语言程序中,对END语句叙述正确的是 C 。
A END语句是一可执行语句B END语句表示程序执行到此结束C END语句表示源程序到此结束D END语句在汇编后要产生机器码11.下面的数据传送指令中,错误的操作是D。
A mov ss:[bx+di],byte ptr 10hB mov dx,l000hC mov word ptr[bx],1000hD mov ds,2000h12.下面指令执行后,变量dab中的内容是 C 。
daw dw 2A05hdab db 0Fah…mov al,byte ptr dawsub dab,alA 0DAHB 0FAHC 0F5HD 0D0H13.根据下面的语句序列,AX寄存器的内容是C 。
tab db 1,2,3,4,5,6entry equ 3…mov bx,offset tabadd bx,entrymov ax,[bx]A 0405HB 0304HC 0504HD 0403H14.假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。
A mov V1,20hB mov V1,V2C mov al,V1D mov 2000h,V215.若定义xyz dw`A',则xyz字存储单元中存放的数据是 A 。
A 0041HB 4100HC 0061HD 6100H16.使用伪指令定义:val db 2 dup (1,2,3dup(3),2dup(1,0),1)则在val存储区内前10个字节单元的数据是D。
A 1,2,3,3,2,1,0,1,2,3B 1,2,3,3,3,3,2,1,0,1C 2,1,2,3,3,2,1,0,2,1D 1,2,3,3,3,1,0,1,0,1二、填空题1.用汇编语言编写的程序称为汇编语言源程序,它必须由__汇编_______程序将它转换成二进制的机器语言程序,这种机器语言程序被称为_____目标代码程序_____ ,而转换的过程称为__汇编__________。
它还必须用__连接________程序连接,才能生成可执行的程序.2.汇编语言源程序的扩展名是_ASM __,目标程序的扩展名是_OBJ_______,通常产生的可执行程序的扩展名是__EXE_______·3.汇编语言语句中,源操作数和目的操作数采用,(逗号)分隔。
4.指令“cmp ax,80h”中源操作数的寻址方式是立即寻址方式。
5.若定义“datavar db 0a5h,5bh”,填空指令“mov bx,__word ptr d atavar”,使该指令无语法错误。
6.若操作结果为零转向标号goon,应使用的语句为_jz goon (或je goon)_________。
7.与指令“loop again”功能等效的两条指令依次是_dec cx_和__jnz again_。
8.用“dw 1234h”语句定义的一个字,如果改用db定义时,语句应为_db 34h,12h_____________。
9.定义wdata dw l020h,则执行mov al,byte wdata指令后,AL=_20h____。
10.如下数据定义:V1 db 4dup(2),2count equ 10V2 dd count dup(?)为变量V1分配 5 个字节存储;为变量V2分配40 个字节存储.11.现有变量定义如下:ary dw 10 dup(?)试填写执行如下指令的结果:mov ax,type ary ;AX=_2_________mov bx,length ary ;BX=__10_________mov cx,size ary ;CX=___20________12.已知数据段如下:org 0100hary dw 3,$+4,5,6cnt equ $-arydb 1,2,cnt,3则执行如下指令后,AX=_0106h____,BX=_0308h_____。
mov ax,ary+2mov bx,ary+10MASM的操作符“$”表示当前偏移地址,所以ary定义的$+4=102h+4=106h。
同理,cnt=$-ary=108h-100h=813.程序段如下:blk db 46h,84h,34h,-5,20h,22h,73h…mov cx,7lea si,blknext:mov al,[si]inc sitest al,81hloopz nextmov bl,[si]该程序段运行后,AL=_84h_____、BL=__34h_______。
第一次顺序执行到test指令时,al=84h. 84h和81h相逻辑与的结果是80h,将使zf=0。
随后执行loopz指令,因为zf≠1而终止循环;此时al=84h,因为si已经加1指向后一个数据,所以bl=34h。
14.如下源程序;数据段avar dw 0bvar dw 0cvar dw 10,20,30;代码段lea bx,cvarmov ax,[bx]mov bvar,axmov ax,[bx+2]add ax,bvarmov avar,ax执行后,avar= 30 。
三、问答题1.汇编语言中,伪指令语句与硬指令语句的本质区别是什么?硬指令:每个硬指令就是一个处理器指令,在CPU执行时产生相应功能;伪指令:伪指令并不产生处理器指令,它通常用于辅助汇编程序对源程序进行汇编。
2.汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
①编辑:用纯文本编辑程序源程序,产生ASM源程序。
②汇编:用汇编程序汇编源程序,产生OBJ目标程序。
③连接:用连接程序将目标程序转换为EXE可执行程序。
④调试:用调试程序调试可执行程序。
3.源程序中如何指明程序执行的起始点?通常在起始指令设置一个标号(例如START),然后用“END START”伪指令说明该标号的指令为起始点。
4.标号有哪三个属性?其含义是什么?段地址:表示标号所在代码段的段地址。
偏移地址:表示标号所在代码段的段内偏移地址。
类型:引用该标号时,表示它所在同一个段——NEAR类型,还是另外一个段——FAR 类型。
5.说明如下两条语句的区别:①xyz1 db 75②xyz2 equ 75①“xyz1 db 75”语句定义了一个字节变量xyz1,在主存存放了一个75的数据。
②“xyz2 equ 75”语句说明了一个常量xyz2,它代表75,它在主存中并没有存放任何内容。
6.下列语句在存储器中分别为变量数据区分配多少个字节单元?①var5 dd 10 分配4个字节单元②var6 dw 4 dup(?),2 分配10个字节单元四、程序阅读题1.下述程序段运行后,从Bxyz单元开始依次存放的数据是什么?Axyz db 0F8hBxyz db 3dup(?)…lea di,Bxyzmov cx,3mov al,Axyzlop:sar al,1mov [di],alinc diloop lop从Bxyz单元开始依次存放0FCH、0FEH、0FFH2.现有源程序如下:;数据段org 100hblock dw l,2,3,4,5,6,7,8,9count equ ($-block)/2result dw count,?;代码段lea bx,block-2mov cx,resultxor ax,axgoon:add bx,2cmp ax,[bx]jae nextmov ax,[bx]next:loop goonmov result+2,ax该程序段执行完后:①result+2字存储单元的内容是什么?result+2字存储单元的内容是9(最大值)②BX等于多少?BX等于110H③程序循环了多少次?程序循环了9次3.现有下列数据段:string db`ABCDEFGHIJKL'count equ $-stringbuffer db count dup(0)下面程序段是实现把string中所有字符逆向传送到buffer缓冲区(即将string中第一个字符送到buffer的最后一个单元,sting中最后一字符送到buffer的第一个单元,……)。
请把程序中所空缺的指令填上。
mov si,offset buffer-1mov di,offset buffermov cx,countcldagain:movsb__sub si, 2____loop again本题中目的存储区用DI指示首地址,源存储区用SI指示尾地址,以便实现逆向传送。
如果串传送指令MOVSB采用增量方式(CLD指令)则DI和SI都自动加1,而实际上SI 需要的是减1,所以第二个空缺位置应该填上“SUB SI,2”。
4.说明如下程序段完成什么功能dxyz1 db 300 dup(?)dxyz2 db l00 dup(?)…mov cx,100mov bx,200mov si,0mov di,sinext:mov al,dxyz1[bx][si]mov dxyz2[di],alinc siinc diloop next将dxyz1 后100个数据传送到dxyz2缓冲区。
五、程序设计题1.分别用一个说明性语句完成如下要求:①将数据56h、78、0b3h、100依次存放在字节变量onebyte中;onebyte db 56h、78、0b3h、100②字变量twoword依次存放数据3721h、l0h、100、4936h;twoword dw 3721h、l0h、100、4936h;③将字符串“How are you!”存入变量fourmsg;fourmsg db ‘How are you!’④以fivemulti为首地址,连续存放字节数据,2个23h,5个`A',10个1和2,25个预留单元。