【管理资料】汇编语言习题1汇编
《汇编语言》练习题库

《汇编语言》练习题库
汇编语言是计算机硬件和软件之间的桥梁,是一种基于机器指令的
低级程序设计语言。
掌握汇编语言对于理解计算机的工作原理和进行
底层编程具有重要意义。
下面是一份《汇编语言》练习题库,旨在帮
助读者巩固和应用所学知识。
一、基础题
1. 使用汇编语言编写一个程序,实现两个数相加的功能。
2. 编写一个汇编语言程序,将一个字符串逆序输出。
3. 设计一个程序,判断一个数是否为偶数。
4. 编写一个程序,实现一个简单的计算器,可以进行加减乘除运算。
二、中级题
1. 设计一个程序,实现排序算法中的冒泡排序。
2. 编写一个汇编语言程序,判断一个字符串是否为回文串。
3. 设计一个程序,将一个数组中的奇数和偶数分别存放在两个新的
数组中。
4. 编写一个程序,实现一个简单的文本编辑器,可以实现插入、删除、替换等功能。
三、高级题
1. 设计一个程序,实现图像的旋转和缩放功能。
2. 编写一个汇编语言程序,实现一个简单的操作系统。
3. 设计一个程序,实现一个简易的数据库系统,可以进行数据的增删查改操作。
4. 编写一个程序,实现一个简单的网络聊天室。
以上是《汇编语言》练习题库的部分题目,通过做题可以提高对汇编语言的理解和应用能力。
同时,建议读者在做题的过程中,结合教材和其他学习资料,加深对汇编语言的学习和掌握。
祝愿大家在汇编语言的学习中取得优异的成绩!。
汇编语言试题及参考答案

汇编语言试题及参考答案一、选择题(每题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的作用是________。
汇编语言试题

汇编语言试题一、简介汇编语言是一种低级机器语言的编程语言,它直接操作计算机底层硬件资源。
本文将提供一些汇编语言的试题,旨在帮助读者巩固对汇编语言的理解和应用。
二、试题1. 寄存器和内存(1) 请说明CPU中的通用寄存器有哪些,以及它们的作用。
通用寄存器是CPU内部的一组用于暂存数据的寄存器。
常用的通用寄存器有AX、BX、CX、DX、SI、DI等。
•AX寄存器:作为累加器,用于算术和逻辑运算。
•BX寄存器:作为基址寄存器,用于存放内存偏移地址。
•CX寄存器:作为计数器,用于循环操作。
•DX寄存器:作为数据寄存器,用于存放一些临时数据。
•SI寄存器:源变址寄存器,指向源操作数。
•DI寄存器:目标变址寄存器,指向目标操作数。
(2) 请写出以下汇编语言代码的含义:MOV AX, 500MOV BX, AX这段代码的含义是将立即数500(16进制:0x01F4)赋值给AX寄存器,然后将AX寄存器的值赋值给BX寄存器。
2. 程序流程控制(1) 请写出汇编语言中的条件跳转指令,并说明其作用。
汇编语言中的条件跳转指令用于根据条件判断是否执行跳转操作。
常见的条件跳转指令有以下几种:•JMP:无条件跳转,直接跳转到指定的地址。
•JE(Jump if Equal):当上一次比较指令结果为相等时跳转。
•JNE(Jump if Not Equal):当上一次比较指令结果为不相等时跳转。
•JZ(Jump if Zero):当上一次操作结果为0时跳转。
•JNZ(Jump if Not Zero):当上一次操作结果不为0时跳转。
(2) 请写出以下汇编语言代码的含义:CMP AX, BXJE Label1JMP Label2Label1:MOV CX, DXLabel2:MOV SI, DI这段代码的含义是将AX寄存器和BX寄存器的值进行比较,如果相等,则跳转到Label1处执行MOV CX, DX指令,否则跳转到Label2处执行MOV SI, DI指令。
汇编语言-习题解答

答:TEST AL,0A9H;SF,ZF,PF
3.5现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,下列指令执行后AX寄存器的内容:
状态标志用来记录程序运行结果的状态信息,它们是根据有关指令的执行结果由CPU自动设置的,常用作条件转移指令的转移控制条件。CF(Carry Flag)进位标志,主要用来反映运算是否产生进位或借位,如果运算结果的最高位有效位产生进位或借位时,进位标志置1,即CF=1,否则置0。PF(Parity Flag)奇偶标志,用于反映运算结果中“1”的个数的奇偶性,当运算结果最低字节中“1”的个数为零或偶数时,PF=1,否则PF=0。AF(Auxiliary carry Falg)辅助进位标志,记录运算时第3位(低半字节)产生的进位值,辅助进位标志一般在BCD码运算中作为是否进行十进制调整的判断依据。ZF(Zero Flag)零标志,用来反映运算结果是否为0,运算结果为0时ZF位置1,否则置0。SF(Sign Flag)符号标志,记录运算结果的符号,它与运算结果的最高位相同,结果为负时置1,否则置0。OF(Overflow Flag)溢出标志,用于反映有符号数运算结果是否溢出,在运算过程中,如操作数超出了机器能表示的范围,则称为溢出,此时OF位置1,否则置0。
汇编语言程序设计题库练习题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章汇编语言基础1.1 简答题(1)哪个处理器的指令系统成为Intel 80x86系列处理器的基本指令集?8086(2)ROM-BIOS 是什么?ROM-BIOS是固化在只读存储器中的基本输入输出系统,是PC 软件系统最低层的程序。
(3)什么是通用寄存器?一般指处理器最常使用的整数寄存器,可用于保存整数数据、地址等(4)堆栈的存取原则是什么?采用先进后出FILO或者后进先出LIFO的操作方式。
(5)标志寄存器主要保存哪方面的信息?用于反映指令执行结果或控制指令执行形式。
(6)最高有效位MSB是指哪一位?数据的最高位,例如对8、16、32位数据,MSB依次指D7、D15和D31位(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗?没有(8)汇编语言的标识符大小写不敏感意味着什么?表示字母大小写不同、但表示同一个符号(9)在汇编语言源程序文件中,END语句后的语句会被汇编吗?不会(10)汇编时生成的列表文件主要包括哪些内容?主要包含源程序和目标代码。
1.2 判断题1)EAX也被称为累加器,因为它使用最频繁。
对,EAX中的A来自英文累加器(Accumulator)6)处理器的传送指令MOV属于汇编语言的执行性语句对7)汇编语言的语句由明显的4部分组成,不需要分隔符区别。
错,使用了分隔符才有了明显的4部分8)MASM汇编语言的注释用分号开始,不能用中文分号对,源程序中的分隔符以及各种标识符都是英文9)程序终止执行也就意味着汇编结束,所以两者含义相同。
错,两者完全是两个概念1.3 填空题(1)Intel 8086支持( ) 容量主存空间,IA-32处理器支持( ) 容量主存空间。
1MB ,4GB(2)Intel ( ) 处理器将80x86指令系统升级为32位指令系统,()处理器内部集成浮点处理单元、开始支持浮点操作指令。
80386,80486(3)IA-32处理器有8个32位通用寄存器,其中EAX,(),( )和EDX,可以分成16位和8位操作;还有另外4个是( ),( ),( ),和( )。
汇编习题——精选推荐

汇编习题汇编习题⼀选择题1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.⼀个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末⼀个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与⾸字相隔(128-1=)127个字,且每个字占⽤2个字节,因此末字单元的物理地址应为:⾸字单元的物理地址+(128-1)×2即12ABH×10H+00ABH+(128-1)×2=12C59H。
3.在下列指令的表⽰中,不正确的是参考答案为:CA.MOV AL,[BX+SI]B.JMP SHORT DONIC.DEC [BX]D.MUL CL[解析]当只有⼀个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需⽤类型说明,如DEC BYTE PTR [BX] 或 DEC WORD PTR [BX]但是在题⽬的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;⽽其它选项中的指令均是正确的。
4. 条件转移指令JNE的测试条件为参考答案为:AA.ZF=0B.CF=0C.ZF=1D.CF=1[解析]略。
5. 8086CPU在基址加变址的寻址⽅式中,变址寄存器可以为参考答案为:DA.BX或CXC.DX或SID.SI或DI[解析]略6. 已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。
参考答案为:AA.数据段中偏移量为3236H的字节B.附加段中偏移量为3234H的字节C.数据段中偏移量为3234H的字节D.附加段中偏移量为3236H的字节[解析]指令中的源操作数的寻址⽅式是相对基址变址寻址,且由于其中的基址寄存器采⽤的是BX,所以源操作数是在数据段中,其偏移量为:BX+SI+2=2000H+1234H+2=3236H7. 在程序执⾏过程中,IP寄存器中始终保存的是参考答案为:BA.上⼀条指令的⾸地址B.下⼀条指令的⾸地址C.正在执⾏指令的⾸地址D.需计算有效地址后才能确定地址[解析]在程序运⾏过程中,它始终指向下⼀条指令的⾸地址,它与CS代码段寄存器联合确定下⼀条指令的物理地址。
汇编习题1

一、选择题1、8086CPU中程序计数器IP中存放的是。
A、指令B、指令在现行代码段中的偏移地址C、操作数D、操作数在现行代码段中的偏移地址2、Intel8086CPU内部的两大功能部件是。
A、标志寄存器及ALUB、BIU及EUC、指令队列及AIUD、地址加法器及ALU3、8086CPU有20根地址线,直接寻址内存的空间为b 。
A、64MBB、1MBC、4MBD、8MB4、Intel8086堆栈是按 c 原则构造的。
A、先进先出B、后进后出C、先进后出D、随机存取5、微型计算机主存储器的基本编址单元的长度是 d 。
A、64位B、32位C、16位D、8位6、为使CPU识别不同的内存单元,需要为每个内存单元规定不同的b 。
A、符号B、地址C、数据D、状态7、指令指针IP与 d 组合使用,确定下一条指令存放单元的物理地址。
A、CSB、ESC、SSD、DS8、堆栈指针SP与 c 组合使用,确定栈顶单元的物理地址。
A、CSB、ESC、SSD、DS9、8086对内存进行分段管理,一个段的最大范围是a 。
A、64KBB、128KBC、512MBD、1MB10、8086CPU用于存放当前数据段段基址的寄存器是d 。
A、CSB、ESC、SSD、DS11、为数据段基址寄存器DS赋值得汇编语句正确的是d 。
A、ASSUME DS:DATAB、SEGMENT DATAC、MOV DS,DATAD、MOV AX,DATAMOV DS,AX12、下列描述正确的是b 。
A、汇编语言只由指令语句构成B、汇编语言语句包括指令语句和伪指令语句C、指令性语句和伪指令语句的格式是完全相同的D、指令性语句和伪指令语句都能经过汇编程序翻译成机器代码13、8086/8088系统中,一个栈可使用的最大空间是 c 。
A、1MBB、由SP初值决定C、64KBD、由SS初值决定14、若(AL)=10101101B,为了使其内容变为01011101B,下列哪一种执行一次即可完成此操作?bA、NOT指令B、AND指令C、XOR指令D、OR指令15、设(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址为 d 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) MOV AX,BX
; AX=100H
3305H 26H
3306H 37H
:
:
3405H 78H
3406H 69H
:
:
(2) MOV DL,CH
; DL=03H
(3) MOV AX,[SI]
(6) MOV CL,SS:[SI+50H]
解:该指令的源操作数为存储器操作数,其寻址方式为变 址寻址,故有效地址为SI的内容1357H+50H=13A7H。操作 数所处段为堆栈段,故段基址为04680H,所以实际地址=段 基址+有效地址=04680H+13A7H=05A27H。
(7) MOV BL,DS:[BP+30H]
(8) MOV [BP+SI+30H],AL
解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为5678H+1357H+30H=69FFH。 操作数所处段为隐含段堆栈段,故段基址为04680H,所以实 际地址=段基址+有效地址=04680H+69FFH=0B07FH。
(9) MOV [BX+SI-40H],AH
(4) MOV DL,[SI+10H]
解:该指令的源操作数为存储器操作数,其寻址方式为变 址寻址,故有效地址为SI的内容1357H+10H=1367H。操作 数所处段为隐含段数据段,故段基址为09250H,所以实际地 址=段基址+有效地址=09250H+1367H=0A5B7H。
(5) MOV CH,[BP+20H]
汇编语言习题1
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。
(2) MOV AH,[BP] 解:该指令的源操作数为存储器操作数,其寻址方式为基址 寻址,故有效地址为BP的内容5678H。操作数所处段为隐 含段堆栈段,故段基址为04680H,所以实际地址=段基址+ 有效地址=04680H+5678H=09CF8H。
(10) MOV CS:[BX+SI],DH
解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为1234H+1357H=258BH。 操作数所处段为代码段,故段基址为4B100H,所以实际 地址=段基址+有效地址=4B100H+258BH=4D68BH。
已知数据定义如下,则给定的程序段执 行后,寄存器AX的内容是多少?
(3) MOV BH,CS:[SI]
解:该指令的源操作数为存储器操作数,其寻址方式为寄 存器间接寻址,故SI的内容1357H即为有效地址。操作 数所处段为代码段,故段基址为4B100H,所以实际地址 =段基址+有效地址=4B100H+1357H=4C457H。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。
解:该指令的源操作数为存储器操作数,其寻址方式为基 址寻址,故有效地址为BP的内容5678H+20H=5698H。操作 数所处段为隐含段堆栈段,故段基址为04680H,所以实际地 址=段基址+有效地址=04680H+5698H=09D18H。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。
DATA 0AH 14H 1EH 28H 32H
ENTER 03H 00H
1.DATA DB 10,20,30,40,50
ENTER DW 3
:
:
MOV
BX,OFFX,[BX]
AX= 3228H
已知数据定义如下,则给定的程序 段执行后,寄存器AX的内容是多少? DATA 0AH
; AX=6978H
(4) MOV AL,[SI+1]
; AL=69H
(5) MOV BX,[SI-100H]
; BX=3726H
(6) MOV DX,-200H[BX][SI] ; DX=3726H
3505H A6H (7) MOV [BX][SI],CX 3506H 35H (8) MOV [BX],AX
; (3505H)=0302H ; (100H)=1234H
5.6 条件同上题,指出下述指令执行后的结果和标志 位状态。
(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)
解:该指令的目标操作数为存储器操作数,其寻址方式为 基址变址寻址,故有效地址为1234H+1357H-40H=254BH。 操作数所处段为隐含段数据段,故段基址为09250H,所以实 际地址=段基址+有效地址=09250H+254BH=0B79BH。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。
解:该指令的源操作数为存储器操作数,其寻址方式为基 址寻址,故有效地址为BP的内容5678H+30H=56A8H。操 作数所处段为数据段,故段基址为09250H,所以实际地址= 段基址+有效地址=09250H+56A8H=0E8F8H。
3.15 已知:BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的 有效地址和实际地址。
00H
2.DATA DW 10,20,30,40,50
14H
00H
ENTER DW 3
1EH
:
00H
:
28H
MOV
BX,OFFSET DATA
00H
MOV
SI,ENTER
MOV
AX,[BX+SI]
AX= 1E00H
32H 00H ENTER 03H 00H
5.5 已知: AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1, 当前数据段中 (3305H)=26H,(3306H)=37H,(3405H)=78H,