第四章汇编语言程序设计题库
汇编语言程序设计题目以及答案
一、单项选择题(每小题1分,共20分)1、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A)A、85B92HB、86192HC、BB690HD、12169H2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS3、循环指令LOOPNZ终止循环的条件是(B)。
A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX10,且ZF=0D、CX10,或ZF=14、对寄存器AX的内容乘以4的正确指令序列是(B)。
A、SHR AX,1 /SHR AX,1B、SHL AX,1/ SHL,AX,1C、ROL AX,1 /ROL AX,1D、RCR AX,1/ RCR AX,15、执行INC指令除对SF、ZF有影响外,还要影响的标志位是(A)。
A、OF,AF,PFB、OF,AF,CFC、OF,PF,CFD、AF,PF,CF6、设DH=10H,执行NEG DH指令后,正确的结果是(D)。
A、DH=10H CF=1B、DH=0F0H CF=0C、DH=10H CF=0D、DH=0F0H CF=17、下列传送指令中有语法错误的是(A)。
A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX8、下面指令执行后,改变AL寄存器内容的指令是(D)。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL9、执行除法指令后,影响的标志位是(D)。
A、CF,OFB、SF,ZFC、CF,OF,SFD、AF,CF,OF,PF,SF,ZF都不确定10、执行下面指令序列后,结果是(A)。
MOV AL,82H / CBWA、AX=0FF82HB、AX=8082HC、AX=0082HD、AX=0F82H11、与MOV BX,OFFSET VAR指令完全等效的指令是(D)。
汇编语言程序设计练习题及参考答案
一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
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表示任意数据。
汇编语言程序设计(第四版)第4章【课后答案】
汇编语言程序设计(第四版)第4章【课后答案】汇编语言程序设计第四版【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。
〔解答〕思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。
传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成:.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov cx,7mov si,1again: mov al, byte ptr qvar[si]mov byte ptr qvar[si-1],alinc siloop againtest al,80hjz ezzmov bl,0ffhjmp doneezz: mov bl,0done: mov byte ptr qvar[7],bl.exit 0end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。
〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。
.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50inc siloop againdec dxjnz lpp.exit 0.end〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。
汇编语言程序设计试题
一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)(20分)( A )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?A. 基址寻址B. 寄存器间接寻址C. 变址寻址D.基址变址寻址( A )2.确定下列哪些数据在汇编语言中的表示是合法的?A. 2 AND 3*5B. 138QC. A3HD. HIGH AX( C )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?A. 00FCHB. 00FAHC. 00FEHD. 0106H( B )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?A. CMP AX,BXB. CMP AX,BXJNB OK JA OKC. CMP BX,AXD. CMP AX,BXJBE OK JNC OK( A )5. 下列程序段在语法上是正确的是?A. X1 DB ‘ABCD’B. X1 DW ‘ABCD’C. X1 DD ‘ABCD’D. X1 DB 1234H( C )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?A. 0,0B. 0,1C. 1,0D. 1,1( D )7. 已知AL,BL中各存放一个带符号数,计算AL/BL的商,用下述哪个程序段?A. DIV BLB. IDIV BLC. XOR AH,AHD. CBWIDIV BL IDIV BL( C ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中, 哪一个能实现调用SUBR的目的?A. LEA SI,SUBRB. MOV SI,SUBRCALL [SI] CALL SIC. MOV BX, OFFSET SUBRD. MOV BX, OFFSET SUB( B )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?A. 17HB. 12HC. 13HD. 10H( A )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?A. 03H,08HB. 08H,03HC. 04H,03HD. 08H,08H二、判断题(判断每题正误,对的在题后括号内划“√ ”,错的划“×”)。
汇编语言程序设计题库练习题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~4章【课后答案】
汇编语言程序设计第四版【课后习题答案】第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〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
汇编语言程序设计试卷及答案
汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题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语句的叙述正确的是()。
汇编语言程序设计试题参考答案
汇编语言程序设计参考答案A卷一、单项选择题(本大题共8小题,每小题2分,共16分)1.C2.B3.B4.A5.C6.A7.A8.C9.D 10.B二、名词解释(本大题共5小题,每小题4分,共20分)11.微处理器:也成中央处理器(CPU),是微型计算机的核心部件,包含运算器、控制器、寄存器组及总线接口等,负责对计算机系统各部件进行统一的协调和控制。
12.寻址方式:就是寻找操作数或操作数地址的方式,根据寻址方式可方便地访问各类操作数。
13.伪指令:是发送给汇编程序的命令,在汇编过程中由汇编程序进行处理,如定义数据、分配存储区、定义段及定义过程等。
14.中断源:指能引起中断的外部设备或内部原因。
15.汇编语言:是一种面向CPU指令系统的程序设计语言,采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。
三、简答题(本大题共4小题,每小题5分,共20分)16.微型计算机系统软件的主要特点是什么?计算机系统软件的主要特点是简化计算机操作,支持应用软件的运行并提供相关服务,通常包括操作系统、语言处理程序等。
17.什么是逻辑地址?他由哪两部分组成?计算机存储器中给每个逻辑段编址的地址称逻辑地址。
逻辑地址是在程序中使用的地址,他由段地址和偏移地址两部分构成。
18.一个完整的汇编源程序由那些逻辑段组成?各逻辑段的主要作用是什么?一般情况下汇编语言源程序应该由以下3个逻辑段组成:①数据段:用来在内存中建立一个适当容量的工作区,以存放常数,变量等程序需要对其进行操作的数据;②堆栈段:用来在内存中建立一个适当容量的堆栈区,以便在中断、子程序调用时使用;③代码段:包括了许多以符号表示的指令,其内容就是程序需要执行的具体操作。
19. DMA数据传送方式的特点是什么?DMA数据传送方式把外设与内存交换信息的操作与控制交给DMA控制器,简化了CPU对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
华中师大《汇编语言程序设计》练习测试题库及答案
华中师范大学网络教育学院《汇编语言程序设计》练习测试题库及答案一 .选择题(只有一个正确答案,填在题干前的括号里)1.一台完整的计算机系统包括_________。
A.硬件系统和软件系统B.系统硬件和系统软件C.控制器、运算器、存储器、输入设备和输出设备D.操作系统、机器语言、汇编语言、高级语言2.汇编程序属于_________。
A.硬件系统B.软件系统C.系统软件D.用户软件3.简单的汇编语言程序可以通过_________来建立A.连接程序B.调试程序C.汇编程序D.编辑程序4.8086/8088微处理器包含有两个独立的部件_________和_________。
A.R和ALUB.CS和IPC.BIU和EUD.CPU和I/0设备5 .进行汇编语言编程时,设计者应该考虑一些基本的要求,下列叙述不正确的是____。
A.程序应该结构化B.程序应该执行速度快C.程序应该占用空间大D.程序应该简明、易读、易懂6 .一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是____。
A.12C5BHB.12B6BHC.12C59HD.12BFEH7 .字符串HOLLO的ASCII代码表示为____.A.484F4C4C4FHB.484F4D4D4FHC.494F4C4C4FHD.494F4D4D4FH8.如果内存中某一单元的物理地址是20B4CH,那么它的逻辑地址是_________:212CH。
A. IEA2HB. IEB2HC. IFA2HD. IFB2H9,现有段地址和偏移地址为1025H:0F2AH,那么它所对应存储单元中的物理地址是_________。
A. 1107AHB. 01F4FHC. 11F4FHD. 1117AH10.一个有16个字的数据区,它的起始地址是1000H:117AH,请指出这个数据区最末一个字单元的物理地址是_________。
汇编语言程序设计题库
汇编语言程序设计题库汇编语言程序设计题库一.选择题(100选20个每个1,共20分)1. 1个CPU的寻址能力为8KB,那么它的地址总线的宽度为A. 10B.11C.12D.132.在存储器中,数据和程序以形式存放。
A.二进制B.十进制C.八进制D.十六进制3.CPU要访问的某一存储单元的实际地址称A.段地址B.偏移地址C.物理地址D.逻辑地址4.某存储单元的物理地址是12345H,可以作为它的段地址的有A.2345HB.12345HC.12340HD.1234H5.设物理地址(21000H)=20H ,(21001H)=30H,(21002H)=40H。
如果从地址21001H 中取出一个字的内容是A. 2030HB.3040HC.3020HD.4030H6.在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址为()A. 3017BHB. 30170HC. 3017AHD. 30210H7.在DEBUG工具中,单步执行指令的命令是()。
A. GB. DC. TD. R8. 在DEBUG工具中,显示寄存器内容的命令是()。
A. GB. DC. TD. R9.若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为()。
A. 20098HB. 20102HC. 200FEHD. 20100H10.若栈顶的物理地址为20100H,当执行完指令POP AX后,栈顶的物理地址为()。
A. 20098HB. 20102HC. 200FEHD. 20100H11.如代数据段名为DATA_SEG,它的起始地址为20A00H,对数据段寄存器DS赋值段地址值的方法是()。
A. MOV DS,20A0HB. ASSUME DS:DATA_SEGC. DATA_SEG SEGMENTD. MOV AX,DATA_SEGMOV DS,AX12.执行PUSH BP指令时,源的操作数的物理地址表达式是()A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP13.用户为了解决自己的问题,用汇编语言所编写的程序,称为()A目标程序B源程序C可执行程序D汇编程序14.已知AX=8065H,BX=103AH,则指令ADD BL,AL执行后,OF和CF的值分别为()。
汇编语言程序设计习题集
汇编语言程序设计习题集第四章汇编语言程序设计习题集一、单项选择题1. 用高级语言编写的程序()。
A. 只能在基本种计算机上运行B. 无需经过编译或解释,即可被计算机直接执行C. 具有通用性和可移植性D. 几乎不占用内存空间2. 一般地,我们将计算机指令的集合称为()。
A.机器语言 B. 汇编语言 C. 模拟语言 D. 仿真语言3. 我们通常所说的“裸机”指的是()。
A. 只装备有操作系统的计算机B. 不带输入输出设备的计算机C. 未装备任何软件的计算机D. 计算机主机暴露在外4. 计算机的软件系统一般分为()两大部分。
A. 系统软件和应用软件B. 操作系统和计算机语言C. 程序和数据D. DOS和Windows5.计算机系统软件中的汇编程序是一种()。
A. 汇编语言程序B. 编辑程序C. 翻译程序D. 将高级语言转换成汇编程序的程序6. 假设V1和V2是用DW定义的变量,下列指令中正确的是:()A. MOV V1,20HB. MOV V1,V2C. MOV AL,V1D. MOV 2000H,V27. PC机所使用的标准键盘向主机发送的代码是()A . ASCII码B . 扫描码 C. BCD码 D. 格雷码8. 8086CPU中断号为8的中断矢量存放在()。
A. 0FFFFH:0008HB. 0000H:0008HC. 0000H:0020HD. 0020H:0000H9. 已知变量VAR为字型,则TYPE VAR=()。
A. 1B. 2C. 3D. 410.汇编语言源程序经MASM汇编后可直接生成的文件是()。
A. .LSTB. .CRFC. .EXED. .OBJE. .ASMF. .MAP11. 段定义语句以( B )语句结束。
A.ENDB.ENDSC.ENDPD.ENDM12.若主程序段中数据段名为DATA,对数据段的初始化操作应为()。
A. MOV AX,DATAB. MOV AX,DATAMOV ES,AX MOV DS,AXC. PUSH DSD. MOV DS,DATA 13. .EXE文件产生在()之后。
汇编语言程序设计习题及答案
汇编语言程序设计习题及答案汇编语言程序设计习题及答案汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。
虽然在现代计算机编程中,高级语言如C、Java等更为常见,但了解汇编语言的基本原理和编程技巧对于理解计算机底层工作原理和进行性能优化非常重要。
本文将介绍一些汇编语言程序设计的习题及其答案,帮助读者巩固和提升汇编语言编程能力。
一、基础习题1. 编写一个汇编程序,将存储器中的某个字节的值加1,并将结果存回原位置。
答案:```assemblyMOV AL, [地址]INC ALMOV [地址], AL```2. 编写一个汇编程序,计算存储器中一个数组的和,并将结果存放在指定的寄存器中。
答案:```assemblyMOV CX, 数组长度MOV BX, 数组首地址MOV AX, 0LOOP_START:ADD AX, [BX]ADD BX, 2LOOP LOOP_START```二、进阶习题1. 编写一个汇编程序,实现字符串的逆序输出。
答案:```assemblyMOV SI, 字符串首地址MOV DI, 字符串尾地址MOV CX, 字符串长度DEC CXREVERSE:MOV AL, [SI]MOV AH, [DI]MOV [DI], ALMOV [SI], AHINC SIDEC DILOOP REVERSE```2. 编写一个汇编程序,实现两个16位无符号整数的相乘,并将结果存放在指定的寄存器中。
答案:```assemblyMOV AX, 第一个数MOV BX, 第二个数MUL BX```三、挑战习题1. 编写一个汇编程序,实现一个简单的计算器,支持加法、减法、乘法和除法运算。
答案:```assemblyREAD_INPUT:; 读取用户输入; ...PARSE_INPUT:; 解析用户输入,获取操作数和运算符; ...CALCULATE:; 根据运算符进行相应的计算; ...DISPLAY_RESULT:; 将计算结果显示给用户; ...LOOP:; 循环执行计算器程序; ...```2. 编写一个汇编程序,实现一个简单的迷宫游戏,玩家通过键盘控制角色在迷宫中移动,并找到出口。
汇编语言程序设计练习题及答案
一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
)1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D)A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546HC.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’2.DA2 DB‘AB’,‘CD’┇MOV AX,WORD PTR DA2+1上述语句执行后AX中的值是(D)A.‘AD’B.‘BC’C.‘DA’D.‘CB’3.下列数据定义语句中可实现留空20H个字节存储单元的是(D)A.DB 20 DUP(?) B.DW 20H DUP(?)C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?)4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D)A.32K字节B.32K字C.64K字节D.64K字5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BPC.SI D.DI6.下列指令中有语法错误的是(C)A.PUSH AX B.PUSH [20H+SI+BX]C.POP CS D.PUSH CS7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D)A.16*SS+BP B.16*DS+BPC.16*CS+IP D.16*SS+SP8.把BL中的数据输出到端口8CH中正确指令是(C)A.OUT 8CH,BL B.IN 8CH,BLC.MOV AL,BL D.MOV AL,BLOUT 8CH,AL IN 8CH,AL9.结果为零的条件转移指令,其测试条件是(A)A.ZF=1 B.ZF=0C.SF=l D.SF=010.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是MOV CH,0MOV CH,0FFHZERO:MOV DH,CH(C)A.JNZ ZERO B.JS ZEROC.JZ ZERO D.JC ZERO11.汇编源程序时,出现语法错误的语句是(C)A.MOV [BX+SI],BX B.MOV CL,[BP+DI]C.MOV CS,AX D.MOV DS,AX12.设SP初值为3050H,执行指令PUSH BX后,SP的值是(B)A.304FH B.304EHC.3048H D.3049H13.串操作指令中,每次操作后使SI/DI为减量应设置(C)A.DF=0 B.TF=1C.DF=1 D.TF=014.设AL=57H,BL=24H,执行指令SUB AL,BL后,寄存器内容为(B)A.AL=57H,BL=24H B.AL=33H,BL=24HC.AL=57H,BL=33H D.AL=33H,BL=015. 当执行ADD AX ,BX 指令后,若AX的内容为4E52H 时,设置的奇偶标志位PF=0 ,下面的叙述正确的是( A)A. 表示结果中含 1 的个数是奇数B. 表示结果中含1 的个数是偶数C. 表示该数是奇数D. 表示结果中低8 位中含1 的个数是奇数16. 设物理地址(21000H)=20H, (21001H)=30H,(21002H)=40H 。
《汇编语言程序设计》必考试题及答案
《汇编语言程序设计》必考试题及答案一、选择题1. 汇编语言属于 ____。
A. 高级语言B. 机器语言C. 低级语言D. 自然语言答案:C. 低级语言2. 在汇编语言中,寄存器eax主要用于 ____。
A. 存储返回值B. 存储函数参数C. 存储局部变量D. 存储全局变量答案:A. 存储返回值3. 汇编语言中,jmp指令用于 ____。
A. 设置循环条件B. 调用子程序C. 跳转到指定地址D. 返回主程序答案:C. 跳转到指定地址二、简答题1. 请简述汇编语言与高级语言的区别。
汇编语言是一种低级语言,使用助记符来代表机器指令,每条汇编指令对应一条机器指令。
而高级语言更加抽象,采用更接近人类自然语言的表达方式,通过编译器将高级语言编写的程序转换为机器语言。
2. 请列举汇编语言常用的寄存器及其作用。
汇编语言常用的寄存器包括:- eax:主要用于存储返回值。
- ebx、ecx、edx:通用寄存器,用于暂存计算结果。
- esi、edi:源操作数寄存器和目的操作数寄存器,用于存储数据传输时的源地址和目的地址。
- ebp、esp:用于管理函数调用过程中的栈帧。
- eip:指令指针寄存器,存储下一条将要执行的机器指令的地址。
三、编程题请编写汇编语言程序,实现从键盘输入两个数,并将其相加后输出的功能。
```assemblysection .dataprompt db '请输入两个数,以空格分隔:', 0result db '两数相加的结果为:%d', 0section .bssnum1 resb 4num2 resb 4section .textglobal _start_start:; 输出提示信息mov eax, 4mov ebx, 1mov ecx, promptmov edx, 20int 0x80; 输入第一个数mov ebx, 0mov ecx, num1 mov edx, 4int 0x80; 输入第二个数 mov eax, 3mov ebx, 0mov ecx, num2 mov edx, 4int 0x80; 将两个数相加 mov eax, [num1] mov ebx, [num2] add eax, ebx; 输出结果mov ebx, eaxmov eax, 1mov ecx, resultint 0x80; 退出程序mov eax, 1xor ebx, ebxint 0x80```以上为一个简单的汇编语言程序,实现了从键盘输入两个数,并将其相加后输出的功能。
第四章汇编语言程序设计题库
第四章汇编语言程序设计题库第四章汇编语言程序设计练习题一.单项选择题(共40题)K 关于指令MOV [BX], AX,以下叙述正确的是:A、目的操作数是寄存器操作数B、源操作数是内存操作数C、目的操作数是内存操作数D、源操作数是立即操作数2、执行下列程序,设(SS)=2000H,执行后(SP) = ?MOV SP, 2000H MOV AX, 1234H PUSH AXA.21FFEHB. 20000HC. 22000H D, 22002H3、运算型指令的寻址和转移型指令的寻址,其不同点在于A.前者取操作数,后者决定程序的转移地址B.后者取操作数,前者决定程序的转移地址C.两者都是取操作数D.两者都是决定程序的转移地址4、MOV ( ),300A. WORD PTR [DX]B. BYTE PTR [BX]C. WORD PTR [BP] D、AL5、汇编语言程序代码必须位丁•代码段中,形成代码段物理地址的寄存器对是A. SS: SP B・ CS: IP C・ DS: BX D・ CS: BX6、若定义DAT DW'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是0A. 0041H B・ 41 OOH C・ XX41H D・ 41XXH7、执行下面的程序段后,(AX)=()TAB DW b 2, 3, 4, 5, 6 ENTRY EQU 3 MOV BX, OFFSET TABADD BX, ENTRT MOV AX, [BX]A. 0003HB. 0300HC. 0400HD. 0001H8、下面表示段定义结束的命令是( )A・ ENDP B・ ENDS C. ENDM D. END9、设AL、BL,中都是带符号数,当AL<BL时转至NEXT处,在CMP AL, BL指令后应选用正确的条件转移指令是()A. JBE B ・ JL C ・ JNA D ・ JNLE 10、指令L00PZ它的循环执行条件是()A. CX 不等T 0 11 ZF=OB. CX 不等于 0 或 ZF 二0D. CX不等于0或ZF=1CODE SEGMENT17、完成BX-CX 结果送AX 的错误操作是()A ・ SUB BX, CX MOV AX, BX B ・ SUB AX, BX SUB AX, CX C. XCNG AX, BXSUB AX, CX D ・ MOV AX, BXSUB AX, CX18、 表示一条指令的存储单元的符号地址称() A.标号 B.变量 C.偏移量 D.类型19、 变量的类型属性如下,下面错误的类型是() A.字节型 B.字型 C.字符型 D.双字型C. CX 不等于 0 ILZF=111、执行下列指令后,SP 寄存器的值是()MOV SP,1000H PUSH AXA. OFFEHB. OFFFHC.1001HD. 1002H12、完成将有符号数BX的内容除以2的正确指令是()A. SHR BX, 1B. SAR BX, 1C. ROR BX ・ 1D. RCR BX, 113、汇编语言源程序经汇编后不能直接生成() C. EXE文件 D ・CRF 文件A. OBJ文件B. LST文件14、执行下列程序(AL )=( DATA SEGMENTTAB-DA DB ‘0123456789’DATA ENDSB ・ ASSUME CS : CODE, DS : DATA MOV BX, OFFSET TAB-DA A. 52 B. 33HC ・ 30HSTART : MOV AX, DATA MOV AL, 04D. 12MOVDS, AXXLAT15、设BL=05H,要使结果BL=OAH,应执行的指令是() AND BL, OFH C. XOR BL, OFH D ・ OR BL, OFHA. NOTBL16、用MOV 指令将十进制数89以组合型BCD 码格式送入AX,正确使用的指令是OA. MOV AX, 0089B ・ MDV AX, 0809HC. MDV AX, 0089H D ・ MOV AX, 0809INC SI20、 现用数据定义伪指令定义数据: BUF DB 4 DUP(0, 2 DUP(1, 0));定义后,存储单元中有数据0100H 的字单元个数是()A. 4B. 3C. 8D. 1221、 分析下面指令序列执行后的正确结果是() MOV BX, OFFFCHMOV CL, 2SAR BX, CLA. 3FFFHB. OFFFFH C OFFFCH D. 0FFF5H22.下面指令序列执行后完成的运算,正确的算术表达式应是 () MOV AL,BYTE PTR X; SHL AL, 1; DEC AL;MOV BYTE PTR Y, AL ;A. y=2x+l B ・ x=y+l C ・ y=2x-l D ・ x = y-l上述程序段中, 条件转至ZERO 处当变量VAR 的内容为何值时,执行JZ ZERO 条件转移指令后,可满足 ()A. (VAR ) =0B ・(VAR )二53HC ・VAR中第0, 2, 4, 6位为0D ・VAR中第24.交换寄存器SI 、DI 的内容,正确的程序段是()SI PUSH DIPUSH DIPOP SIPOP SIA. PUSH SIB. PUSH POP DIPOP DIC. MOV AX, SI D ・ MOV AX, SI 25、完成41H 送[2100H ]. 42H 送[2101H ]的正确程序段是()A. MOV AL, 41HB. MOV SI,2100HMOV [2100H], AL MOV[S1], ' A'INC AL23、 TEST VAR, 55HJZ ZERO ZERO :1, 3, 5, 7 位为 0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章汇编语言程序设计练习题一、单项选择题(共40题)1、关于指令MOV [BX],AX,以下叙述正确的是:A、目的操作数是寄存器操作数B、源操作数是内存操作数C、目的操作数是内存操作数D、源操作数是立即操作数2、执行下列程序,设(SS)=2000H,执行后(SP)=?MOV SP,2000HMOV AX,1234HPUSH AXA.21FFEH B.20000H C.22000H D.22002H3、运算型指令的寻址和转移型指令的寻址,其不同点在于A.前者取操作数,后者决定程序的转移地址B.后者取操作数,前者决定程序的转移地址C.两者都是取操作数D.两者都是决定程序的转移地址4、MOV ( ),300A、WORD PTR [DX]B、BYTE PTR [BX]C、WORD PTR [BP]D、 AL5、汇编语言程序代码必须位于代码段中,形成代码段物理地址的寄存器对是A.SS: SP B.CS: IP C. DS: BX D. CS: BX6、若定义DAT DW 'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是()A.0041H B.4100HC.××41H D.4l××H7、执行下面的程序段后,(AX)=()TAB DW 1,2,3,4,5,6ENTRY EQU 3MOV BX,OFFSET TABADD BX,ENTRTMOV AX,[BX]A.0003H B.0300HC.0400H D.0004H8、下面表示段定义结束的命令是()A.ENDP B.ENDS C. ENDM D.END9、设AL、BL,中都是带符号数,当AL<BL时转至NEXT处,在CMP AL,BL指令后应选用正确的条件转移指令是()C.JNA D.JNLE10、指令LOOPZ它的循环执行条件是( )A.CX不等于0且ZF=0 B.CX不等于0或ZF=0C.CX不等于0且ZF=1 D.CX不等于0或ZF=111、执行下列指令后,SP寄存器的值是()MOV SP,1000HPUSH AXA.0FFEH B.0FFFHC.1001H D.1002H12、完成将有符号数BX的内容除以2的正确指令是()A.SHR BX,1 B.SAR BX,1C.ROR BX.1 D.RCR BX,113、汇编语言源程序经汇编后不能直接生成()A.OBJ文件B.LST文件C.EXE文件D.CRF文件14、执行下列程序(AL)=( )。
DATA SEGMENTTAB-DA DB ‘0123456789’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXMOV BX,OFFSET TAB-DAMOV AL,04XLATA.52 B.33H C.30H D.1215、设BL=05H,要使结果BL=0AH,应执行的指令是( )A.N0T BL B.AND BL,0FHC.XOR BL,0FH D.OR BL,0FH16、用MOV指令将十进制数89以组合型BCD码格式送入AX,正确使用的指令是()A.MOV AX,0089 B.MDV AX,0809HC.MDV AX,0089H D.MOV AX,080917、完成BX—CX结果送AX的错误操作是()MOV AX,BXB.SUB AX,BXSUB AX,CXC.XCNG AX,BXSUB AX,CXD.MOV AX,BXSUB AX,CX18、表示一条指令的存储单元的符号地址称()A.标号B.变量C.偏移量D.类型19、变量的类型属性如下,下面错误的类型是()A.字节型B.字型C.字符型D.双字型20、现用数据定义伪指令定义数据:BUF DB 4 DUP(0,2 DUP(1,0));定义后,存储单元中有数据0100H的字单元个数是()A.4 B.3 C.8 D.1221、分析下面指令序列执行后的正确结果是( )MOV BX,OFFFCHMOV CL,2SAR BX,CLA.3FFFH B.0FFFFH C 0FFFCH D.0FFF5H22、下面指令序列执行后完成的运算,正确的算术表达式应是( )MOV AL,BYTE PTR X;SHL AL,1;DEC AL;MOV BYTE PTR Y,AL;A. y=2x+1 B.x=y2+1 C.y=2x-1 D.x=y2-123、TEST V AR,55HJZ ZEROZERO:......上述程序段中,当变量V AR的内容为何值时,执行JZ ZERO条件转移指令后,可满足条件转至ZERO处( )A. (V AR)=0 B.(V AR)=55HC.V AR中第0,2,4,6位为0D. V AR中第l,3,5,7位为0。
24、交换寄存器SI、DI的内容,正确的程序段是()A.PUSH SI B.PUSH SIPUSH DI PUSH DIPOP SI POP DIPOP DI POP SIC.MOV AX,SI D.MOV AX,SI25、完成41H送[2100H]、42H送[2101H]的正确程序段是()A.MOV AL,41H B.MOV SI,2100HMOV [2100H],AL MOV[Sl],’A’INC AL INC SIMOV[2100H],AL MOV[S1],’B’C.MOV AX,4241H D.MOV AX,‘AB’”MOV [2100H],AX MOV[2100H],AX26、堆栈的工作方式是()A.先进后出B。
后进先出C.先进先出D.后进先出27、字变量ARRAY的偏移地址(或有效地址)送寄存器BX的正确结果是()A.LEA BX,ARRAY B.LEA BX,OFFSET ARRAYC.LES BX,ARRAY D.MOV BX.ARRAY28、在用汇编语言开发软件过程中,首先用编辑程序建立扩展名为( )的文件,经汇编生成扩展名为( F)的目标程序文件,最后连接生成扩展名为( )的可执行文件。
A.TXT B. DOS C.ASM D. EXEE.COM F. OBJ G. PRG H. BAK29、DEBUG调试工具中,用来显示内存的命令是( )A.E B.R C.T D.D30、已知1000H处有一条指令JNC rel,其机器代码是××H、73H,CF=0,试问执行该指令后,(IP)= ( )A.0FF8DH B.1073HC. 0FF8BH D.1075H31、执行下列程序,设(SS)=2000H,执行后AL中的数据在内存地址()MOV SP,2000HMOV AX,1234HPUSH AXA.2000H B.22000HC.21FFEH D.21FFH32、执行下列程序,设(SS)=2000H,执行后AH中的数据在内存地址()MOV SP,2000HMOV AX,1234HPUSH AXA.20000H B.21FFFHC.22000H D.21FFEH33、INC指令不影响( )标志位。
A.OF B.CF C.SF D.ZF34、将AL中带符号数乘10送AL,正确的程序段是()A.SAL AL,1 B.ADD AL,ALMOV BL,AL MOV BL,ALSAL AL,1 ADD AL,ALSAL AL,1 ADD AL,ALADD AL,BL ADD AL,ALC.MOV CL,4 D.ADD AL,ALMOV BL,AL ADD AL,ALSAL AL,CL ADD AL,ALADD AL,BL ADD AL,ALADD AL,AL35、在ADD指令中,两个操作数的物理位置不可以安排在( )中。
A.两个主存储单元 B.一个主存储单元和一个数据寄存器C.两个数据寄存器 D.一个堆栈单元和一个数据寄存器36、下面表示汇编源程序结束的命令是( )A.ENDP B.ENDSC. ENDMD.END37、在汇编语言中()用于定义常数,变量,内存空间的分配和定位.A.伪指令 B.机器指令C.宏指令 D.微指令38、伪指令一般在()被解释。
A.程序运行时 B.编译程序时C.连接时 D.编写源程序时39、若定义DATA DB 0A5H,5BH,在指令 MOV BX,( )DATA中填充,使指令正确执行。
A.WORD B.BYTE PTRC.WORD PTR D.OFFSET40、若定义DATA DW 1234H,执行MOV BL,BYTE PTR DATA指令后,(BL)=( )A.12H B.34H C.23H D.14H二、填空题(共50个空)1、立即数一定存放在(1)段中2、如果在一个程序开始执行以前CS=-A7F0H,IP=2B40H试问该程序的第一个字的物理地址是( 2 )3、已知1000H处有一条指令JNC rel,其机器代码是××H、73H,CF=0,试问执行该指令后,(IP)=( 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) MOV AX,[1200H];AX=( 4 )(2) MOV AX,[BX] ;AX=( 5 )(3) MOV AX,1100[BX] ;AX=( 6 )(4) MOV AX,[BX][SI] ;AX=( 7 )(5) MOV AX,1100[BX][SI] ;AX=( 8 )5、指示性语句的格式为( 9)。
6、执行下列程序(AL)=(10)H。
DATA SEGMENTTAB-DA DB ‘0123456789’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFSET TAB-DAMOV AL,04XLAT TAB-DA7、对于下面的数据定义:A1 DW 20 DUP(?)A2 DB 20 DUP(?)A3 DB‘98765432l’MOV AX,LENGTH A1MOV BX,LENGTH A2MOV CX,LENGTH A3各条指令执行后,相应寄存器的内容为: AX=( 11 ),BX=( 12 ),CX=(13 )8、分析以下程序段:SUB AX,BXJNC L3JNO L4JMP SHORT如果AX和BX的内容给定如下:AX BX(1)147B 80DC(2)D023 9FD0(3)94B7 B568该程序执行后,程序转向( 14 );(15 );(16 )。