汇编语言上机练习题
汇编语言试题及答案

汇编语言试题及答案一、单项选择题(每题2分,共20分)1. 汇编语言是一种()。
A. 高级语言B. 低级语言C. 机器语言D. 符号语言答案:D2. 汇编语言程序必须经过()才能被计算机执行。
A. 编译B. 汇编C. 链接D. 解释答案:B3. 在汇编语言中,指令通常由()组成。
A. 操作码和操作数B. 操作码和地址码C. 操作码和数据D. 地址码和数据答案:A4. 汇编语言中的寄存器主要用于()。
A. 存储数据B. 存储指令C. 存储地址D. 存储控制信息答案:A5. 汇编语言中的立即寻址方式是指()。
A. 操作数在寄存器中B. 操作数在内存中C. 操作数在指令中D. 操作数在输入/输出端口中答案:C6. 在汇编语言中,指令“MOV AX, 1234H”的作用是()。
A. 将内存地址1234H的内容移动到AX寄存器B. 将立即数1234H移动到AX寄存器C. 将AX寄存器的内容移动到内存地址1234HD. 将AX寄存器的内容移动到另一个寄存器答案:B7. 汇编语言中的循环结构通常使用()指令实现。
A. JZB. JNZC. LOOPD. CALL答案:C8. 在汇编语言中,子程序调用通常使用()指令。
A. JZB. JNZC. CALLD. RET答案:C9. 汇编语言中的堆栈操作通常使用()指令。
A. PUSHB. POPC. MOVD. ADD答案:A10. 在汇编语言中,中断服务程序的结束通常使用()指令。
A. INTB. IRETC. RETD. CALL答案:B二、填空题(每题2分,共20分)1. 汇编语言中的指令通常由______和______两部分组成。
答案:操作码;操作数2. 汇编语言中的寄存器可以分为______、______和______三类。
答案:通用寄存器;段寄存器;控制寄存器3. 汇编语言中的寻址方式包括______、______、______和______等。
答案:立即寻址;直接寻址;间接寻址;寄存器寻址4. 在汇编语言中,指令“MOV AX, BX”的作用是将BX寄存器的内容______到AX寄存器。
汇编语言试题及参考答案

汇编语言试题及参考答案一、选择题(每题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次上机题

2013《汇编语言程序设计》第一次上机题
一、目的
(1) 学会汇编源程序开发的过程:编辑、汇编MASM、连接LINK、调试TD。
(2)编写简单的汇编语言程序,加强对汇编语言的理解。
二、预习
(1) 课本《80X86汇编语言程序设计》第7章:7.1和7.4节。
(2) 参考《80X86汇编语言程序设计上机指南》(许向阳编写)相关内容。
(3) 从汇编教学网站上下载相关软件(MASM,LINK,TD,DOSBox)并自己带到机房里(DOSBox是DOS
环境模拟软件)。
二、题目
1、《80X86汇编语言程序设计》P299中的程序实例。
要求:重复7.4.3节中的整个过程,初步掌握TD的使用方法。
2、《80X86汇编语言程序设计》P31中的1.14题。
要求:直接在TD中输入指令进行求和(如MOV AH, x1、MOV AL, x2、ADD AH, AL),记录执行指令后标志位SF、OF、CF、ZF的值(验证自己的作业情况)。
3、编写程序
利用DOS 10号功能调用输入一个字符串,把其中的小写字母转换为大写字母,然后把整个字符串显示出来。
要求:输入各种字符串校验程序的正确性。
汇编语言试题 (2)

汇编语言试题题目一:寄存器及栈操作假设有一段汇编代码如下,请根据代码的功能回答相应的问题:push ebpmov ebp, espmov eax, dword ptr [ebp + 8]add eax, dword ptr [ebp + 12]pop ebpret1.以上汇编代码中,push ebp和pop ebp的作用分别是什么?2.mov ebp, esp的作用是什么?有什么作用范围?3.dword ptr是什么意思?4.请解释ret的作用。
解答:1.push ebp的作用是将ebp的值保存到栈中,而pop ebp的作用是将栈中的值弹出,并将其赋给ebp寄存器。
这是函数调用的常用操作,用来保存和恢复函数的堆栈帧。
12.mov ebp, esp的作用是将栈顶地址存入ebp寄存器中,以便在函数内部可以通过ebp寄存器来访问函数参数和局部变量。
作用范围是当前函数内部。
3.dword ptr是一个内存访问修饰符,用来指定要访问的内存单元的大小和类型。
在本题中,dword ptr指示要访问的内存单元是一个 32 位的双字(double word)。
4.ret指令用于函数返回,它将弹出栈顶的返回地址,并跳转到该地址执行,从而实现函数的返回。
题目二:条件分支和循环请完成以下汇编代码的功能描述,并回答相应问题:mov eax, 10mov ecx, 0loop:cmp eax, 0je endadd ecx, eaxdec eaxjmp loopend:1.请描述以上汇编代码的功能。
2.eax和ecx分别用来存储什么数据?请解释mov eax, 10和mov ecx,0的作用。
3.cmp eax, 0和je end的作用是什么?24.dec eax是什么意思?5.jmp loop的作用是什么?解答:1.以上汇编代码的功能是计算从 10 累加到 1 的结果,并将结果存储在ecx寄存器中。
2.eax用来存储循环计数器(初始值为 10),ecx用来存储累加结果。
计算机技术汇编语言试题含答案

计算机技术汇编语言试题含答案第一部分:选择题1. 汇编语言是计算机硬件的一种低级编程语言,其特点是()。
A. 高级、易读易写B. 低级、复杂C. 低级、易读易写D. 高级、复杂答案:C2. 汇编语言是一种()。
A. 人机交互语言B. 低级语言C. 高级语言D. 自然语言答案:B3. 汇编语言最主要的作用是()。
A. 提高计算机运行速度B. 完成特定的计算任务C. 方便程序员编写高级语言程序D. 简化计算机指令的执行过程答案:C4. 汇编语言的指令是由()组成的。
A. 二进制代码B. 十进制代码C. 字母和数字D. 中文字符答案:A5. 汇编语言与机器语言之间的关系是()。
A. 完全相同B. 相似但不完全一样C. 完全不同D. 无法确定答案:B第二部分:简答题1. 什么是汇编器?它的作用是什么?汇编器是一种用于将汇编语言代码翻译成机器代码的软件工具。
其作用是将人类可读的汇编语言指令转换成计算机能够理解的二进制代码,以便计算机能够执行相应的操作。
2. 谈谈汇编语言的优点和缺点。
汇编语言的优点包括:- 直接操作底层硬件,可精确控制计算机执行指令,提高程序执行效率。
- 可以直接访问和利用硬件资源,如寄存器、内存等。
- 可以编写高效的程序,适用于对性能要求较高的场景。
- 编写汇编语言程序相对来说较为简单,可以更好地理解计算机的工作原理。
汇编语言的缺点包括:- 难以学习和掌握,对于初学者来说门槛较高。
- 编写的程序复杂度高,维护困难。
- 汇编语言代码的可移植性差,不同的计算机体系结构需要不同的汇编指令集。
- 缺乏高级语言的抽象和封装特性,代码可读性差。
第三部分:编程题请编写一段汇编语言代码,实现将数组 A 中所有元素加 1 的功能。
数组 A 的起始地址保存在寄存器 AX 中,数组长度保存在寄存器 BX 中。
假设数组 A 的元素都是字节类型。
```asmMOV CX, 0 ; 用于循环计数的寄存器MOV SI, AX ; 用于保存数组起始地址的寄存器LOOP_START:MOV AL, [SI] ; 将当前数组元素的值加载到 AL 寄存器ADD AL, 1 ; 将 AL 寄存器中的值加 1MOV [SI], AL ; 将 AL 寄存器中的值存回数组对应位置INC CX ; 循环计数器加 1INC SI ; 数组地址指针加 1CMP CX, BX ; 比较循环计数器和数组长度JL LOOP_START ; 如果循环计数器小于数组长度,则跳转到LOOP_START 继续循环```答案:以上汇编语言代码实现了将数组 A 中的所有元素加 1 的功能。
汇编语言上机题

汇编语言上机题汇编语言上机考试题1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。
3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。
4试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。
5 编写程序,将一个包含有16个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来(以一位十六进制数形式显示)。
6 试编写一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中。
7 试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数。
8设有一段英文,其字符变量名为ENG,并以$字符结束。
试编写一程序,查对单词SUN在该文中的出现次数9 从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。
10 在STRING到STRING+99单元中存放着一个字符串,试编制一个程序测试该字符串中是否存在数字’0’-’9’,如有则把CL的第5位置1,否则将该位置0。
11在首地址为TABLE的数组中按递增次序存放着100H个16位补码数,试编写一个程序把出现次数最多的数及其出现次数分别存放于AX和CX中。
12 数据段中已定义了一个有n个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。
13 在首地址为DATA的字数组中存放着100H个16位补码数,试编写一个程序求出它们的平均值放在AX寄存器中;并求出数组中有多少个数小于此平均值,将结果放在BX寄存器中。
14 把0~100D之间的30个数存入以GRADE为首地址的30字数组中,GRADE+i表示学号为i+1的学生的成绩。
汇编第3次上机题

2013《汇编语言程序设计》第3次上机题
一、目的
(1) 加深对一些常用的汇编指令的理解;
(2) 掌握基本的程序设计方法;
(3) 进一步熟悉TD的使用。
二、题目
1、《80X86汇编语言程序设计》教材中 P96的 3.11 题。
要求:(1)请事先指出程序运行结束后,显示器显示的内容。
(不需要抄程序)(2)若将NUM的定义改成如下形式:NUM DB 35
显示的结果是什么?
(3)若将NUM的定义改成如下形式:NUM DB 59
显示的结果是什么?
(4)若将NUM的定义改成如下形式:NUM DB 75
显示的结果是什么?
(5)修改该程序,使之能够以16进制形式显示NUM单元中的内容。
(写出修改部分即可)
2、设在一个缓冲区BUF1中存放了一个串“123GOOD”, 将其以相反顺序拷贝到另一
个缓冲区BUF2中。
要求:用TD观察程序执行前后的数据区,并记录下来。
3、输入一个十进制数字串(假定是无符号的),以四位十六进制的形式输出该串对
应的值。
例如:Input: 123↙
Output: 007BH
要求:(1) 画出程序流程图,给出寄存器、存储单元的分配方法;
(2) 给出完整的程序清单,有必要的注释。
知识要点:(1) 如何将一个字符串转换成数值?(串数转换)
(2) 如何将一个数值转换成某一进制的字符串?。
汇编语言上机习题 (2)

汇编语言上机习题0:键盘输入字单元number的16进制数值,统计结果存放在变量one中,并且输入one的内容。
查询1的个数1 不用串操作指令,把字符串string1的内容传送到字符串string2,字符长度为count。
2试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII 码为07)。
3 把AX中存放的16位二进制数K看作是8个二进制的"四分之一字节"。
试编写一程序片段,要求数一下值为3(即11B)的四分之一字节数,并将该数在终端上显示出来。
BEGIN: MOV DL, 0 ;计数初始值MOV CX, 8COMPARE: TEST AX, 03H ;是数03吗?JNZ NOEQUAL ;不是,转走INC DL ;是,计数NOEQUAL: ROR AX, 1 ;准备判断下一个数ROR AX, 1LOOP COMPAREADD DL, ‘0’;将计数值转换为ASCII码MOV AH, 2 ;进行显示INT 21HSTOP: RET4 有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。
DSEG SEGMENTMEM DW 100 DUP (?)DSEG ENDS;--------------------------------------------------------------------------CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEGSTART: PUSH DS ;设置返回DOSSUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;给DS赋值BEGIN: MOV SI, (100-1)*2 ;(SI)指向MEM的末元素的首地址MOV BX, -2 ;地址指针的初值MOV CX, 100COMP: ADD BX, 2CMP MEM [BX], 0JZ CONSLOOP COMPJMP FINISH ;比较完了,已无0则结束CONS: MOV DI, BXCONS1: CMP DI, SI ;到了最后单元码?JAE NOMOVMOV AX, MEM [DI+2] ;后面的元素向前移位MOV MEM [DI], AXADD DI, 2JMP CONS1NOMOV: MOV WORD PTR [SI], 0 ;最后单元补0LOOP COMPFINISH: RETMAIN ENDPCSEG ENDS ;以上定义代码段;--------------------------------------------------------------------------END START5 在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言上机练习题
1,
1。
请输入任何字符串,并在颠倒顺序后显示在屏幕上。
2。
请输入任意字符串,计算空格和A的数量,并在屏幕上显示结果3.请输入任何字符串,删除其中的所有空格,并在屏幕上显示结果。
4.请输入任何字符串,用副本替换A,并在屏幕上显示结果
5。
请输入任何字符串,用小写字母替换大写字母,并在屏幕上显示结果6.请输入任何字符串,删除所有英文字母,并在屏幕上显示结果。
二、
7。
现有字符串是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入
4字符串,如果有的话,修改成磁盘,并在显示器上显示结果。
8。
现有的字符串集有随机存取存储器、是、红色、The、GET、FOR、AND、KEY、NOT、MAY。
请编写一个程序,按照ASCII
的大小对它们进行排序,并在显示器上显示出来。
9。
现有的字符串集是数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序,从键盘输入
4个字符串,如果有的话,将其删除,并显示在显示器上。
10。
现有的字符串集有数据、名称、时间、文件、代码、路径、用户、退出、退出、文本。
请编写一个程序对以上
个字符串进行排序(升序),并插入磁盘使它们保持有序,并在显示器上显示出来。
三、
11。
键盘输入一个十进制数(字类型),以十六进制的形式输出12.键盘以二进制输出的形式输入一个十进制数(字类型)13.键盘输入一个二进制数(字类型),以十六进制的形式输出14.键盘以十进制输出的形式输入二进制数(字类型)15.键盘以十进制输出的形式输入一个十六进制数(字类型)16.键盘输入一个十六进制数(字类型),以二进制输出的形式
(1)输入、转换和显示均以子程序形式编写
2程序可以循环接收不同的十进制数并进行处理。
当非数字键被按下时,它退出主程序并返回操作系统。
四、
17。
将一组带符号数字中的负数相加,计算负数的数量,并在屏幕上以十进制形式显示结果
38H、4AH、0C5H、83H、9CH、0B4H、7FH、0C4H、05H、0F5H 18。
在键盘上输入十个数字,分别计算0到9、10到99、100以上的数字,并显示结果19.键盘输入两组数字743216和527864,根据BCD码进行求和,并将结果显示在屏幕上20.键盘输入以下两组十进制数,对它们求和,并在屏幕上显示结果35789418 46531425
21。
键盘输入一系列二进制数1ah、7ch、0bah、3ah、45h、63h,对它们求和,并将结果显示在屏幕
上
22。
从键盘输入一串可显示的字符(以回车结束),并按字母、数字和空格计数。
然后
显示这三种类型的统计结果5.
23。
写一个程序,找出十个字的最大值和最小值,并在显示器上输出125ah,4357h,0f50h,0b43h,4ac4h,7454h,8b15h,0a2a4h,0f3ch,00f6h 24。
在键盘上输入10字节(无符号数字),找到最大值和最小值,并在显示器上输出25.有符号字数组用0标记,数组的最大值、最小值和平均值通过编程计算。
26.在BUFFER中定义的十个有符号字,其负数被转换为绝对值并以十进制形式输出27.众所周知,数组a包含20个彼此不相等的字体整数,数组b包含30个彼此不相等的字体整数,
试图编译一个程序,将出现在a中但不在b中的整数放入数组c。
28。
众所周知,数组A包含20个彼此不相等的字体整数,数组B 包含30个彼此不相等的字体整数。
试图编译一个程序来存储数组c中出现在A和B中的数字六
29。
有4名学生参加了5次考试。
请计算每个学生的平均分数和每个课程的平均分数,并将其显示在
显示屏上。
输出格式如下:
chg 1 chg 2 chg 3 chg 5 meam
S1 78 85 55 100 97 S2 67 96 43 79 84 S3 92 55 76 92 65 S4 43 95 82 89 75 A VER不是小数
30。
从2开始计算N(N)的程序。