汇编语言程序设计习题集111
【汇编语言程序设计】试题及答案合集

汇编语言程序设计试题及答案1.对于有符号的数来说,下列哪个值最大(D)A:0F8HB:11010011BC:82 D: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.BUF1 DB 3 DUP(0,2 DUP (1,2),3)COUNT EQU $-BUF1符号COUNT等价的值是( B)A.6B.18C.16D.913.下列标志位中,可以用来判断计算结果正负的是(B)A:PF B:SF C:DF D:OF14.下列指令正确的是( CD)A. MOV [100H], [BX]B.MOV DS, ESC. ADD V[BX], CXD.MOV AX, 34H15.下列哪个寄存器是属于指针寄存器(C)A:SI B:DX C:SP D:ES二、填空题 (每小题4 分,共 20 分)1.下列程序段求数组FLD的平均值,结果在AL中。
汇编语言程序设计练习题及参考答案

一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
1.用来存放下一条将要执行的指令地址的寄存器是 (B )A.SP B.IP C.BP D.CS2.要使串处理从低地址向高地址进行,应把标志位置为 (D )A.IF=1 B.TF=0C.DF=1 D.DF=03.使状态标志位CF清零的错误指令是 (C )A.OR AX,AX B.SUB AX,AXC.MOV CF,0 D.CLC4.设SP=1110H,执行PUSH AX指令后,SP的内容为 (B )A.SP=1112H B.SP=110EHC.SP=1111H D.SP=110FH5.汇编源程序出现语法错误的指令有 (D )A.MOV [BX+SI],AL B. MOV AX,[BP+DI]C.MOV DS,AX D. MOV CS,AX6.下列串操作指令中,必须同时指明源串和目的串地址的指令是 (D )A.STOSW B.LODSWC.SCASW D.CMPSW7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是 (B )A.SHR BL,1 B.SHL BL,1C.SAR BL,1 D.RCR BL,18.执行PUSH AX指令的正确步骤是 (A )A.1.SP←SP-1,(SP)←AH B.1.(SP)←AH,SP←SP-12.SP←SP-1,(SP)←AL 2.(SP)←AL,SP←SP-1C.1.SP←SP+1,(SP)←AH D.1.(SP)←AH,SP←SP+12.SP←SP+1,(SP)←AL 2.(SP)←AL,SP←SP+19.CF=1 时转移到目标地址的条件转移指令是 (B )A.JNC B.JC C.JZ D.JS10.在执行NEG指令时,对标志位CF有影响,其影响的规则是 ( C )A.对正数求补时,CF=0 B.对负数求补时,CF=0C.对非零数求补时,CF=1 D.对零求补时,CF=111.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A )A.目的操作数最高位为0 B.目的操作数最高位为1C.目的操作数为任意情况 D.无论什么情况都不可能相同12.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是 ( D )A.AX=0032H B.AX=00E0HC.AX=03E0H D.AX=0FFE0H13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是 (D )A.MOV AX,BUFl*BUF2B.MOV AX,BUF1/BUF2C.MOV AX,BUF1+ES:BUF2D .MOV AX ,BUF2-BUF114.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是 (C )A .INC WORD PTR [BX+SI]B .INC CX ,[SI+COUNT]C .NEG BYTE PTR [BX]D .ADD AX ,B15.NUM EQU 80HDA DB 34HAND DA ,NUM上述语句执行后,DA 中的内容是 (D )A .0B4HB .80HC .34HD .016.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为 (A )A .立即、直接、间接B .直接、间接、立即C .直接、立即、间接D .不一定17.语句DA1 DB 2 DUP(3,5,7)汇编后,该语句可等同于的语句是 (D )A .DA1 DB 3,5,7B .DA1 DB 2,3,5,7C .DA1 DB 3,5,7,2D .DA1 DB 3,5,7,3,5,718. MOV AL ,80HMOV CL ,2SAR AL ,CL上述指令序列执行后,结果是 (D )A .AL=40HB .AL=20HC .AL=0C0HD .AL=0E0H19.下面是实现将AL 内容加1的压缩型BCD 码加法程序段,其中正确的指令序列是 (A ) A .INC ALB .ADD AL ,1DAA DASC .ADD AL ,1 D .STCDAA AAA20.现有数据存储如图所示:30100H 30101H 30102H 30103H设AL=01H ,BX=0100H ,DS=3000H 执行换码指令XLAT 后正确的结果是(B )A .AL=20HB .AL=38HC .AL=00HD .AL=41H21.若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是 (B )A .0041HB .4100H20H38H41H55HC.xx41H D.41xxH[注]选项C. 和D.中的XX表示任意数据。
汇编语言程序设计题库练习题1--详细答案

汇编语言程序设计题库练习题1--详细答案汇编语言程序设计练习题一、单项选择题1、与100.5不相等的数据是【 C 】A. 64.8HB. 1100100.1BC. 64.5HD. 144.4O2、指向程序代码段的段寄存器是【 A 】A. CSB. DSC. SSD. FS3、在内存字单元(20000)中存放数1324H,即(20000)=1324H,则从字节单元20001H 中取出一个字节为【 A 】A. 13H B. 24HC. 1324HD. 2413H4、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是【 A 】A. MOV AL,00HB. AND AL,00HC. XOR AL,ALD. SUB AL,AL5、指令JMP BX转移的目标地址的偏移量为【 C 】A. IP+BX的内容B. IP+[BX]C. BX的内容D. BX所指向的内存字单元的内容6、DA1 DW 2A05HDA2 DB 07AH┇MOV AL,BYTE PTR DA1SUB DA2,AL上述指令执行后,DA2中的内容是【 C 】A. 7AH B. 02AHC. 075HD. 050H7、某存储单元的物理地址是12345H,可以作为它的段地址有【 d 】A. 2345HB. 12345HC. 12340HD. 1234H8、设有数据定义X2 DW 10 DUP (0,1,2),定义了多少字节的缓冲【 C 】A. 6B. 30C. 60D. 409、有符号数AX除以2的指令是【 B 】A. SHR AX,1B. SAR AX,1C. ROR AX,1D. RCR AX,110、DEC BYTE PTR[BX]中的操作数的数据类型是【 C 】A. 字B. 双字C. 字节D. 四字11、设SP=4AH,执行段内返回指令RET后,SP的值是【 C 】A. 44HB. 48HC. 4CHD. 50H12、指令“LOOP 标号”转移到标号的的条件是【 A 】A. CX≠0B. ZF=0C. CX≠0 AND ZF=0D. CX≠0 OR ZF=108086二、填空题1、汇编语言源程序经【编译】后,形成目标文件,再经过【链接】后,形成可执行文件。
汇编语言程序设计习题答案

汇编语言程序设计习题答案第一章. 习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=01.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
汇编语言程序设计试卷及答案

汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
① 无符号十进制数136② 带符号十进制数-120③ 压缩型BCD码十进制数88④ 8位二进制数-8的补码表示2.指令指针寄存器是()。
① IP② SP③ BP④ PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
① 表示结果中含1的个数为偶数② 表示结果中含1的个数为奇数③ 表示该数为偶数④ 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
① MOV AL,00H② AND AL,00H④ SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
① AND② NEG③ NOT④ INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
① MOV AX,BX② MOV BX,AX③ PUSH AXPOP BX④ MOV CX,AXMOV AX,BXMOV BX,CX7.设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
① AH=01,AL=05② AH=1 AL=15③ AH=0 AL=0FH④ AH=0 AL=058.设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为② OF=1,CF=1③ OF=0,CF=0④ OF=0,CF=19.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
① CX=0且ZF=0② CX=0且ZF=1③ CX=0或ZF=0④ CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
① REP LODSB② REP SCASB③ REP CMPSB④ REP MOVSB11.在汇编语言程序中,对END语句的叙述正确的是()。
汇编语言程序设计习题-答案

4.1 分析执行下列指令序列后的结果:1)MOV AX,1234HMOV BX,00FFHAND AX,BX【答】(AX)=0034H2)MOV AL,01010101BAND AL,00011111B ;(AL)=00010101BOR AL,11000000B ;(AL)=11010101BXOR AL,00001111B ;(AL)=11011010BNOT AL【答】(AL)=00100101B3)MOV DL,05HMOV AX,0A00HMOV DS,AXMOV SI,0HMOV CX,0FHAGAIN: INC SICMP [SI],DLLOOPNE A GAINHLT本程序实现了什么功能?【答】在以0A001H开始的15个单元中查找05H。
4)MOV AX,DSEGADDRMOV DS, AXMOV ES,AXMOV SI, OFFSET B1ADDRMOV DI,OFFSET B2ADDRMOV CX,NCLDREP MOVSBHLT本程序实现了什么功能?【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。
5)MOV AX, 0HMOV DS,AXMOV ES, AXMOV AL,05HMOV DI,0A000HMOV CX,0FHCLDAGAIN: SCASBLOOPNE AGAINHLT本程序实现了什么功能?【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H的查找。
4.2 阅读程序:1). CLDLEA DI,[0100H]MOV CX, 0080HXOR AX, AXREP STOSW本程序实现了什么功能?【答】将DS中起始地址为0100H的128个字节单元清零。
2). MOV AL, 08HSAL AL,01H ;(AL)=00010000HMOV BL, ALMOV CL ,02HSAL AL,CL ;(AL)=01000000HADD AL,BL ;(AL)=01010000H本程序实现了什么功能?【答】将AL中的内容乘以10。
汇编语言程序设计习题集111

汇编语言程序设计习题集111《汇编语言程序设计》习题一、选择题1. 机器数为10000000B, 它代表-127D,则它是(C )。
A. 补码B. 原码C. 反码D. 原码或反码2.[x1]原=10111101B, [x2]反=10111101B, [x3]补=10111101B (C )。
A. x1最小B. x2最小C. x3最小D. x2=x1=x33.计算机的内存“溢出”是指其运算结果()。
A .为无穷大B .超出了计算机内存储单元所能存储的数值范围C .超出了该指令所指定的结果单元所能存储的数值范围D .超出了一个字所能表示数的范围4. [x1]原=11001010B, [x2]反=11001010B, [x3]补=11001010B ,那么它们的关系是()。
A. x3>x1>x2B. x2>x3>x1C. x3>x2>x1D. x2>x1>x35. 在计算机中表示地址时使用(A )。
A 无符号数B 原码C 反码D 以上都不对6. 下面说法错误的是(D )。
A 8位二进制无符号数表示的最大十进制数是255B 8位二进制带符号数表示的最大十进制数是127C 计算机中无符号数最常用于表示地址D 计算机中小数点隐含在符号位之后,占一位7. 只有当与非门的输入变量A 、B 的值为()时,其输出才为0。
A 0,0B 0,1C 1,0D 1,18. 只有当或非门的输入变量A 、B 的值为()时,其输出才为1。
A 0,0B 0,1C 1,0D 1,19. 若逻辑运算Y=A+B, 当A=B=1时,Y 为()。
A 0B 1C 10D 210. 若门电路的两个输入量为1、1,输出量为0,不可能完成此功能的是()。
A “异或”门B “与非”门C “或非”门D “与”门11. 下列不正确的是()A A AB A B +=+ B _____AB A B =+C AB B AB A B ++=+D A B A B +=12.已知V AR 为字节变量,下面是关于①MOV BX, OFFSET V AR 和②LEA BX, V AR 指令的说明,正确的是()。
汇编语言程序设计课后习题解答

《汇编语言程序设计》(宋人杰主编)课后习题解答第1章汇编语言基础知识1.简述汇编语言源程序、汇编程序、和目标程序的关系。
答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。
2. 简述汇编语言的优缺点。
答:(1) 汇编语言的优点:①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
.②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
③可与高级语言配合使用,应用十分广泛。
(2) 汇编语言的缺点:①通用性和可移植性较差②相对于高级语言来说较繁锁、易出错、不够直观。
3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少?答:134. 1KB的存储器有多少个存储单元?答:1024个字节。
5. 指令中的逻辑地址由哪两部分组成?答:指令中的逻辑地址由段基址和偏移量组成。
6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。
(1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF答: (1) 13080H(2) 1A3F3H(3) 1A3F3H(4) 245EFH7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 1301,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。
答:字节型数据:11H字型数据:0A311H双字型数据:0113A311H8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为多少?若段内偏移地址为2228H,则段基地址为多少?答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH9. 在实模式环境中,一个段最长不能超过多少字节?答:64KB10. 实模式可寻址的内存范围是多少?答:1MB第2章 汇编语言源程序格式1.请解释变量和标号的含义,两者有何区别?答:标号代表一条指令所在单元的地址,在代码段中定义;变量是存放数据的存储单元的地址符号名,在除代码段以外的其他段中定义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16.提示下列指令序列执行后的正确结果是( A )。
MOV BX,OFFFCHMOV CL,2SAR BX,CLA.3FFFH B.0FFFH C.0FFFCH D.0FFF5H19. 指令SCAS的寻址方式是()。
A 源操作数为寄存器寻址,目的操作数为寄存器间接寻址B 源操作数为寄存器间接寻址,目的操作数为寄存器间接寻址C 源操作数为寄存器间接寻址,目的操作数为寄存器寻址D 源操作数为寄存器寻址,目的操作数为寄存器寻址22. 下列指令中不合法的指令是(C)。
A IN AX, 03F8HB MOV BX, AXC REP CMPSBD SHR BX, CL23. 下列指令中正确的是()。
A MOV SS, 2400HB MOV SS, [2400H]C MOV SS, DSD MOV SS, SP24. 下列指令中正确的是(A)。
A XCHG AH, ALB XCHG AL, 20HC XCHG DS, AXD XCHG SP, [20H]29. 下列程序段执行完后,BX寄存器中的内容是( C )。
MOV CL, 3MOV BX, 0B7HROL BX, 1ROR BX, CLA 002DHB 00EDHC C02DHD 000DH30. 执行下列程序:MOV AX, 0MOV BX, 1MOV CX, 100A: ADD AX, BXINC BXLOOP AHLT执行后的结果为:(AX)= ( C ),(BX)= ( ).A 5050,99B 2500,100C 5050,101D 2550,10235. 逻辑位移指令SHR用于(D),而算术位移指令SAR用于带符号数除2。
A 带符号数减2B 带符号数除2C 无符号数乘2D 无符号数除239. 执行下列指令后:MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL CX寄存器AL的值是( B )。
A 60HB 00HC 04HD 08DH43. 对于下列程序段:AGAIN: MOV ES:[DI],ALINC DILOOP AGAIN可用指令( )完成相同的功能。
A REP MOVSB B REP LODSBC REP STOSBD REPE SCASB45. 使得JB指令执行转移操作的条件是( )。
A CF=1B CF=1且ZF=0C ZF=0D CF=0或ZF=146. 在“先判断后工作”的循环程序结构中,循环执行的次数最少是( )。
A 1B 0C 2D 不定47. 下列指令中,指令( )先执行CX-1赋给CX操作,然后再根据CX 的值决定是否转移、循环或进行重复操作。
A JNCB REPC JCXZD LOOP48. 指令LOOPZ的循环执行条件是( )。
A CX≠0并且ZF=0B CX=0或ZF=0C CX≠0并且ZF=1D CX=0或ZF=151. 运算型指令的寻址和控制转移型指令的寻址,其不同点在于( )。
A 前者取操作数,后者决定程序的转移地址B 后者取操作数,前者决定程序的转移地址C 两者都是取操作数D 两者都是决定程序的转移地址53. 汇编语言语句格式中的名字项,下列哪一个不正确?( )A. FFFFFHB. @VariableC. 0FFFFHD. Third_street二、填空11.已知:(AX)=01CDH,(BX)=0AFH,(CX)=0BE02H,CF=1,写出单步执行每条指令时CF,ZF及相关寄存器的内容。
TEST AX,BX ;AX=01CDH,BX=0AFH;CF= ,ZF= ,(AX)= H,(BX0= HROL BX,CL ;(BX)=2BC H,(CL)=02H;CF= ,ZF= ,BX= H,CL= H13.对于字除法指令,目的操作数存放在 AX 中,指令执行后,商放在 AL ,余数在 AH 中。
15. 在除法指令IDIV BX中,被除数隐含为 AX或DX:AX 。
16. 在乘法指令MUL WORD PTE[BX]中,被乘数隐含为 AX ,乘积在DX:AX 中。
17. 执行XLAT指令前,要将表的首地址放在 BX 中,表内偏移地址放在 AL 。
18. 若AL=34H,CL=4,CF=0,执行SAL AL, CL指令后,AL= 40H , CF= 1 。
20. 若DF=1,执行指令LODSB后,SI的内容会自动。
22. 利用指令JO实现转移的条件为。
23. 利用指令JZ后,程序顺序执行下一条指令的条件是。
28. 试分析下列程序段:ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP SHORT L5如果AX和BX的内容给定如下,问该程序执行完后转向哪里?AX BX⑴ 147B 80DC 转向 L1 。
⑵ B568 54B7 转向 L5 。
⑶ 42C8 608D 转向 L1 。
⑷ D023 9FD0 转向 L5 。
⑸ 94B7 B568 转向 L5 。
我也不会30. 条件转移指令的目标地址应在本条件转移指令的下一条指令地址的字节范围内。
32. 一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字单元的物理地址为 H。
33.假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H,执行指令“LES DI,[BX]”后,(DI)= , (ES)= 。
36. 令(AL)=98H, (BL)=12H, 则执行指令MUL BL后,(AX)=。
37. 假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为。
38. 对于字节乘法指令,其目的操作数存放在中,而其源操作数可以用除立即数以外的任一种寻址方式。
其乘积为位,应存放在中。
44.下面程序段完成将字变量OPR1转换成反码和补码分别存入自变量COMP和NEGA单元,将语句补充完整。
OPR1 DW -XXXXXDCOMP DW ?NEGA DW ?MOV AX,OPR1(1)MOV COMP,AX(2)MOV NEGA,AXHLT54.分析下面程序段,回答指定问题:XOR AL,ALCALL SUBROUTMOV BL,ALCALL SUBROUTRCR AL,1HLTSUBROUT PROC NEARNOT ALJS NEXTSTCNEXT: RETSUBROUT ENDP问:程序运行后,AL= ,BL= ?55.分析下面程序段,回答指定问题。
BUF DB 0CHMOV AL,BUFCALL FAR PTR HECA HECA PROC FARCMP AL,10JC K1ADD AL,7K1: ADD AL,30HMOV DL,ALMOV AH,2INT 21HRETHECA ENDP问: 程序执行后,DL= ,屏幕上显示输出的字符是 。
三、问答()16. 若8086执行SUB AH,AL后的结果是(AH)=85H,OF=1,问:(1)执行前AH和AL内的数哪个大?(2)AH中原存的是正数还是负数?其理由是什么?(3)结果(AH)=85H是否正确?理由是什么?23.下列语句中,哪些是无效的汇编语言指令?并指出无效指令中的错误。
(9) INC [BX](14) MOV AX,[BX*7]24.若数组ARRAY在数据段中已作以下定义ARRAY DW 100 DUP(?)试指出下列语句中操作数中的各操作符的作用,指令执行后各寄存器产生了什么变化?MOV BX,OFFSET ARRAYMOV CX,LENGTH ARRAYMOV SI,0ADD SI,TYPE ARRAY26.执行下列程序段前,BUFFER存储区的数据为:DB 1,2,3,4,5,6请给出执行下面程序段后BUFFER存储区中的数据。
MOV SI,OFFSET BUFFERMOV CX,5XOR AL,ALAGAIN: SHL [SI],1INC SYTE PTR[SI]ADD AL,[SI]INC SILOOP AGAINMOV [SI],AIHLT28.假设VAR1和VAR2为自变量,LAB为程序中的一个标号,试找出下列指令的错误之处。
(1)ADD VAR1,VAR2(2)SUB AL,VAR1(3)JNZ VAR1(4)JMP LAB[SI](5)JMP NEAR LAB31. 指出下列每一对伪指令语句的区别。
(1) X1 DB 76 X2 EQU 76(4) X1 DW 3678H X2 DB 36H,78H五、应用。
4. 试编写一程序段,要求在长度为100H字节的数组ARRAY中,找出大于42H的无符号数的个数并存入字节单元UP中;找出小于42H的无符号数的个数并存入字节单元DOWN中。
5. 试编写一个程序求出双字节数的绝对值。
双字长数在A和A+2单元中,结果存放在B和B+2单元中。
6. 编写程序段,把字符串STRING中的第一个‘&’字符用空格符代替。
STRING DB ‘The date is FEB&03’7. 下列ASCⅡ码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:CSTRING DB ‘BASED ADDRESSING’请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。
8. 若地址偏移量为2000H~2003H有一个4字节的数,现要把该数左移1位,写出完成该操作的程序段。
(要求不超过5条指令)9. 写出对存放在DX和AX中的双字长数求负的指令序列。
10. 用其他指令完成和下列指令一样的功能。
(1) REP MOVSB (2) REP STOSB(3) REPNE SCASB (4) REPE CMPSB12. 编写一程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺序执行程序。
13. 已知在N到N+I的存储区中有一组ASCⅡ码字符串(共I+1个),试编写一个汇编语言程序,将此字符串传送到NI到NI+I单元中,并使字符串的顺序与原来的顺序相反。
16. 已知DATA单元为一个16位带符号数的原码形式,试用补码形式表示该数。
17. 在内存的数据段中存放了若干个8位带符号数,数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素及零元素的个数,并分别将个数存入PLUS、MINUS和ZERO单元中。
18. 编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和第99个字节的内容交换……)。
程序设计题2.测定ALPHA字节变量单元中的ASCⅡ码字符,进行如下操作:(1)若为数字字符,送入NUM字节单元中。