山东大学2013-2014汇编语言程序设计试题(含答案)
《汇编语言》试卷及答案
《汇编语言程序设计》试卷一、选择题(每题2分,共20分)1.能够被计算机直接执行的语言称为()。
a、高级语言b、汇编语言c、自然语言d、机器语言2.可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()。
a、AX,BX,CX,DXb、DS,ES,CS,SSc、SP,BP,IP,BXd、SI,DI,BX,BP3.FR寄存器的各个标志位中,如果出现ZR,其含义为()。
A.结果为0 B.结果不为0C.结果溢出D.结果没有溢出4.汇编语言中,存储区的存储原则是()。
A.低低高高B.高高低低C.随机D.以上均错5.要将汇编语言目标文件生成可执行文件,应该通过()工具生成。
A.EDIT B.MASM C.LINK D.DEBUG6.下列哪种寻址方式无法访问存储单元()。
A.基址+变址B.直接寻址C.寄存器寻址D.寄存器的相对寻址7.非压缩的BCD码乘法调整指令为()。
A.AAS B.AAMC.DAA D.AAD8.要使一个段从一个节的位置开始存储,应该使用的定位类型为()A.PAGE B.PARA C.DWORD D.WORD9.DOS功能21H号的9号功能其入参为()A.DS:DX B.DS:SI C.DS:DI D.ES:DX10.控制计算机面板扬声器的端口地址为()。
A.71H B.70H C.16H D.61H二、填空题(每空2分,共20分)1. 计算机中的存储基本单位为___(1)____ 。
2. 8086/8088CPU中共有(2)个16位通用寄存器。
3. DEBUG命令中,查看内存单元内容的命令为(3),读当前寄存器的命令为(4),执行程序的命令为(5)。
4. MOV AX,[SI+BP+1234H]该指令的寻址方式为(6)。
5. 想要访问CMOS芯片,需要通过___ (7)端口和(8)___端口。
6. 变换键的状态字中,D5和D6位分别代表的是(9)以及(10)状态变化。
三、简答题(5*6分=30 分)1、简述汇编语言的编辑于调试步骤。
汇编语言程序设计练习题及参考答案
一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。
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表示任意数据。
(完整版)汇编语言程序设计试卷答案
(完整版)汇编语⾔程序设计试卷答案华东交通⼤学2013—2014学年第⼆学期考试卷参考答案与评分标准(A)卷课程名称:汇编语⾔程序设计(A)课程类别:必、限、任⼀、选择题(每题2分,共20分)1.在计算机中,带符号数都是⽤( B )表⽰。
A)原码B)补码C)反码D)ASCII码2.以下关于指令指针寄存器IP的说法不正确的是( C )A)IP是16位寄存器B)IP的内容由微处理器⾃动设置C)程序可以直接访问IP D)程序可以改变IP的内容3.CPU发出的访问存储器的地址是( A )A)物理地址B)偏移地址C)逻辑地址D)段地址4.以下关于汇编语⾔伪指令的说法中,不正确的是( B )A)当$在指令中表⽰本条指令的第⼀个字节地址B)EQU与=的使⽤相同C)指令中操作数类型不匹配时,可以使⽤PTR属性操作符D)ASSUME只是通知汇编程序有关段寄存器与逻辑段的关系,并没有给段寄存器赋予实际的初值。
5.在8086/8088中,⼀个最基本的总线周期由( D )个时钟周期组成。
A)1 B)2 C)6 D)46.已知data是数据段名,下列指令中语法错误的是( D )A)MOV BX,seg data B)MOV AX,data C)MOV BX,data D)MOV ES,data7.关于DEBUG调试命令的说法中,不正确的是( C )A)-U是反汇编命令B)-R是显⽰当前寄存器内容的命令C)-D是显⽰代码段内容的命令D)-T是单步执⾏命令8.下列关于存储单元的描述正确的是( A )。
A)存储空间地址按字节组织B)存储空间地址按字组织C)存储空间地址按双字组织D)存储空间地址按四字组织9.下⾯指令执⾏后,改变AL寄存器内容的指令是( D )。
A)TEST AL,02H B)OR AL,AL C)CMP AL,BL D)AND AL,BL10.中断向量是( A )。
A)中断服务程序的⼊⼝地址B)中断的返回地址C)存放中断服务程序⼊⼝地址内存单元的地址D)保护断点的堆栈区堆栈区地址⼆、简单填空题(每题2分,共20分)1.8086微处理器由总线接⼝部件和执⾏部件组成,其内部寄存器均为16 位。
汇编语言程序设计题目以及答案
汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。
本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。
通过这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设计的基本概念和技巧。
[题目一] 计算两个数的和要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在指定的内存位置中。
答案:```assemblysection .datanum1 dd 10 ; 第一个整数num2 dd 20 ; 第二个整数result dd 0 ; 结果section .textglobal _start_start:mov eax, [num1] ; 将num1值存入寄存器eaxadd eax, [num2] ; 将num2值与eax寄存器中的值相加mov [result], eax ; 将结果存储到result变量mov eax, 1 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, result ; 输出的数据mov edx, 4 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目二] 字符串反转要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。
答案:```assemblysection .datastr db 'Hello', 0 ; 待反转的字符串section .bssreverse resb 6 ; 存储反转后的字符串section .textglobal _start_start:mov esi, str ; esi指向待反转的字符串mov edi, reverse ; edi指向存储反转结果的位置 mov ecx, 5 ; 字符串长度为5mov ebx, 1 ; ebx用于计数reverse_loop:mov al, [esi+ebx]mov [edi-ebx+5], alinc ebxloop reverse_loopmov byte [edi+5], 0 ; 在末尾添加字符串结束符 mov eax, 4 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, reverse ; 输出的数据mov edx, 6 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目三] 求平均数要求:编写汇编程序,计算给定的一组整数的平均数,并将结果存储在指定的内存位置中。
汇编语言程序设计试卷和答案
汇编语言程序设计试卷一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题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语句的叙述正确的是()。
汇编语言试题及参考答案
汇编语言试题及参答案一、填空题1.ZF标志位是标志结果是否为零的,若结果,ZF为(),否则ZF为()。
当ZF为1时,SF为()2.标号可以有两种类型属性。
它们是()和()3.8位无符号整数的表示范围为0--255,写成16进制形式为(),8位有符号整数的表示范围为-128--+127,写成16进制形式为()4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是(),不得有名字的是(),可有可无名字的是()。
5.循环程序通常由()()()和循环结果外理四部分构成6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/()于+,-;XOR,OR()于AND,LT()于GT7. 宏指令定义必须由伪指令()开始,伪指令()结束,两者之间的语句称为()8.调用程序与子程序之间的参数传递方法有四种,即堆栈法()()()9.分别用一条语句实现下述指明的功能(1)栈顶内容弹出送字变量AYW()(2)双字变量AYD存放的地址指针送ES和SI()(3)变量AY2类型属性送AH()(4)不允许中断即关中断()(5)将字符串…HOW ARE YOU!‟存入变量AYB()(6)子程序返回调用程序()(7)地址表达式AYY[4]的偏移地址送字变量ADDR()(8)AX的内容加1,要求不影响CF()(9)BX的内容加1,要求影响所有标志位()(10)若操作结果为零转向短号GOON()二、单选题1.IBM PC微机中,有符号数是用()表示的1.原码2.补码3.反码4.BCD码2.把汇编源程序变成代码程序的过程是()1.编译2.汇编3.编辑4.链接三、己知:VAR1,VAR2的类型属性分别为字和字节,标号LPFAR的类型属性为FAR。
指出下列非法语句的错误原因1.POP CS()2.INC [BX] ( )3.MVL 8( )4.JLE LPFAR( )5.MOV DB,1800( )6.MOV[DI],VAR17.SUB AX,VAR2( )8.CMP SS AX( )四、简答题1.试述子程序的一般结构组成2.标号有哪三个属性?其含义是什么?3.试述CMP AX,BX和SUB AX,BX两条语句的异同点?五、阅读如下程序段,回答所提出的问题,假定X1,X2,...XN为无符号数。
2014学年第二学期汇编试卷A_参考答案
2013-2014学年第2学期《汇编语言程序设计》考试试卷A卷闭卷考试时间:2014年5月15 日专业班级学号学生姓名一、填空题(共10分,每空1分)1、访问存放在内存中的数据时,需要知道该数据的物理地址。
在实方式下,设(DS)=1000H, 则指令MOV AX, DS:[200H] 中源操作数的物理地址是10200H 。
2、堆栈也是内存中的一片数据存储区域,要访问栈顶元素,同样要知道其物理地址。
在实方式下,设(SS)= 2000H, (SP)= 100 H,则栈顶元素的物理地址是20100H 。
3、一个内存单元的物理地址是唯一的,但是在写指令时,可以由多种方式表达出同一个单元的地址。
例如,设在数据段(DS)中定义了变量LEN DW 10H。
代码段中有:LEA BX, LENMOV SI, 0在这两条指令之后,可使用如下几种方式将LEN 中的内容送入CX中。
用直接寻址方式:MOV CX, LEN用寄存器间接寻址方式:MOV CX, [BX]用变址寻址方式:MOV CX, LEN[SI] or 0[BX]4、在访问一个内存单元时,除了知道其物理地址外,还应明确其类型,即明确以该地址取一个字节、一个字,还是一个双字。
设BUF DW 1122H, 3344H则执行MOV CL, BYTE PTR BUF 后,(CL) = 22H执行MOV CX, BUF后,(CX) = 1122H执行MOV ECX, DWORD PTR BUF 后,(ECX)= 33441122H5、外部设备寄存器只能用I/O指令来访问。
从端口地址60H输入一个字节到AL中的指令为:IN AL, 60H 。
而“OUT 70H, AL”的功能是将AL的内容输出到端口地址为70H的外设寄存器。
二、选择题(共10分,每空1分)1、指令MOV [DI], WORD PTR [SI] 的错误原因是 C 。
(A) DI不能用于寄存器间接寻址方式(B) WORD PTR的用法错误(C) 两个操作数不能同时为存储器操作数(D) 源操作数的类型不明确2、指令ADD [CX], AL 的错误原因是 D 。
汇编语言程序设计试题参考答案
汇编语言程序设计参考答案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对数据交换的控制,数据传送速度快,但这种方式电路结构复杂,硬件开销大。
2.山东大学程序设计-答案
程序设计一、程序阅读题,写出程序的输出结果1.main(){int i=3 while(i<10)){if(i<6) {i+=2; continue; }else printf( “%d” ,++i);}} ___________ 8910 _____ 。
2.main(){int i=3 while(i<10)){if(i<6) {i+=2; continue; }else printf( “%d” ,++i);}} ___________ 8910 _____ 。
3.#include “stdio.h ”main(){int i, j;i=j=2;if(i==1)if(i==2)printf( “ %d” ,i=i+j);elseprintf( “ %d” ,i=i-j);printf( “ %d” ,i);} ___________ 2 _____ 。
二、填空题:4.写出满足下列条件的表达式: a 和 b 都不小于 c ________________________ _a>=c&&b>=_c ____________________________ _5.表达式10+16%3的值为 __ 15 _____ 。
6.下面函数的功能是求 1 到n 的和请把程序补充完整。
long sum( int n){ int i;_ ____ i nt s=0; ____for(i=1;i<=n;i++)______ s+=i; _________ _return s;}得到的初值为7.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]___ 0__。
8.有如下程序段int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后, a 的值为11 。
9.以下程序的输出结果为55 。
void main( ){ int i,j,a[ ]={1,2,3,4,5,6,7,8,9,10};int sum=0;for (i=0;i<10;i++)sum=sum+a[i];printf("%4d",sum);}10.若有定义int a[2][5] ,则整型数组 a 包含有10 个元素。
《汇编语言程序设计》课程知识 复习 学习材料 试题与参考答案
《汇编语言程序设计》课程知识复习学习材料试题与参考答案一、单选题1.为了使MOV AX,VAR指令执行后,AX寄存器中的内容为4142H,下面哪一条数据定义会产生不正确的结果?(C)A.VAR DW 4142HB.VAR DW 16706C.VAR DB 42H,41HD.VAR DW ‘AB’2.关于8086/8088微机系列,下列说法哪个是正确的(D)A.一个存储单元由16个二进制位组成,简称字。
B.当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C.在内存中,可以无限分配段,且段的大小不受限制。
D.段与段之间可以邻接,也可以重叠。
3.宏指令库以(C)格式存放在磁盘上。
A.可执行代码B.目标代码C.源代码4.计算机处理问题中会碰到大量的字符.符号,对此必须采用统一的二进制编码。
目前,微机中普遍采用的是( D)码。
A.BCD码B.二进制码C.十六进制码D.ASCII码5.运算器能够完成(C)运算。
A.算术运算B.逻辑运算C.算术运算和逻辑运算D.加减运算6.十六进制数88H,可表示成下面几种形式,请找出错误的表示(D)A.无符号十进制数136B.带符号十进制数-120C.压缩型BCD十进制数88D.8位二进制数-8的补码表示7.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是(B )A.MOV AX,89B.MOV AX,0809HC.MOV AX,89HD.MOV AX,08098.在执行下列指令时,需要使用段寄存器DS的指令是(D)A.STOSWB.ADD AL,CLC.NEG BXD.INC DA[BX]9.假设AL=28H,执行ROL AL,1指令之后的情况是(D ) P125A.AL=14H, CF=1B.AL=50H, CF=1C.AL=14H, CF=0D.AL=50H, CF=010.设AL=04H,BL=0F8H,执行IMUL BL指令后,结果是(D )A.AX=0032HB.AX=00E0HC.AX=03E0HD.AX=0FFE0H11.JMP SI的目标地址偏移量为(A)。
《汇编程序设计》试题及答案
B.栈区最高地址单元的前一个单元为栈底。
C.运行中 SP 寄存器动态跟踪栈顶位置。
D.压栈和弹出都是以字节为单位。
59.关于 8086/8088 微机系列,下列说法哪个是正确的(D )
A.一个存储单元由 16 个二进制位组成,简称字。
B.当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C.在内存中,可以无限分配段,且段的大小不受限制。
B.指令中,源操作数的偏移地址为 bx 中的内容
C.指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
D.指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)
23.在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )。
A.STOSW B.LODSW C.SCASW
D.CMPSW
24.AL=0AH,下列指令执行后能使 AL=05H 的是( C )。
A.NOT AL B.AND AL,0FH C.XOR AL,0FH
D.OR AL,0FH
26.下面的数据传送指令中,错误的操作是(D )。
30.某存储单元的物理地址是 12345H,可以作为它的段地址有( D )
A.2345H
B.12345H
C.12340H
D.1234H
31.在执行下列指令时,需要使用段寄存器 DS 的指令是( D )
A.STOSW
B.ADD AL,CL
C.NEG BX
D.INC DA[BX]
32.使用 DOS 系统功能调用时,使用的软中断指令是( B )
地址。
C.任意时刻,CS:IP 指向的内容即是此刻 CPU 正在执行的指令。
汇编语言程序设计试卷及答案
汇编语言程序设计试卷及答案一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题2分,共30分)1.IBM PC微机中,有符号数是用()表示的。
(A) 原码 -(B) 反码(C) BCD (D) 补码2.堆栈指示寄存器是()。
(A) IP -(B) SP(C) BP (D) PSW3.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。
(A) 表示结果中含1的个数为偶数(B) 表示结果中含1的个数为奇数(C) 表示该数为偶数-(D) 表示结果中低八位含1的个数为偶数4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。
-(A) MOV AL,00H (B) AND AL,00H(C) XOR AL,AL (D) SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。
-(A) AND (B) NEG(C) NOT (D) INC6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。
(A) MOV AX,BX (B) MOV BX,AX(C) PUSH AX POP BX-(D) MOV CX,AX MOV AX,BX MOV BX,CX7.执行指令MOV AL,0FEHADD AL,ALADC AL, AL之后,其结果应是()。
(A) AL=0F8H CF=1 (B) AL=0F8H CF=0(C) AL= 0F9H CF=0 -(D) AL=0F9H CF=18.DEBUG中的执行一段子程序的命令是()。
(A) D (B) T -(C) P (D) U9.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
(A) CX=0且ZF=0 (B) CX=0且ZF=1-(C) CX=0或ZF=0 (D) CX=0或ZF=110.下面指令中,合理而有意义的指令是()。
汇编语言程序设计答案
汇编语言程序设计答案2篇汇编语言程序设计答案(一)汇编语言是一种底层的计算机语言,通过程序设计来控制计算机硬件的运行。
它是计算机体系结构的基础,可以用来编写高效的程序,实现各种任务。
下面是两个关于汇编语言程序设计的答案,帮助初学者理解汇编语言的基本概念和编程技巧。
答案一:```assemblymov ax, 5mov bx, 6add ax, bx```这个程序的作用是将寄存器ax的值设置为5,寄存器bx的值设置为6,然后将ax和bx的值相加,结果保存在ax中。
最后,ax的值为11。
答案二:```assemblymov ax, 10mov bx, 2div bx```这个程序的作用是将寄存器ax的值设置为10,寄存器bx的值设置为2,然后将ax和bx的值相除,商保存在ax中,余数保存在dx中。
最后,ax的值为5,dx的值为0。
通过以上两个简单的答案,我们可以看到汇编语言的基本操作和计算能力。
编写汇编语言程序需要了解计算机的底层架构和指令集,因为每种计算机体系结构都有不同的汇编语言。
因此,学习汇编语言需要掌握计算机组成原理和计算机体系结构的基本知识。
在编写汇编语言程序时,我们通常需要使用一些常见的指令,例如mov(数据传送)、add(加法运算)、sub(减法运算)、mul(乘法运算)、div(除法运算)、jmp(跳转指令)等等。
掌握这些常用指令和相应的语法规则是学习汇编语言的基础。
另外,汇编语言程序设计也需要学习如何使用寄存器和内存。
寄存器是存储在CPU内部的非常快速的存储器,可以暂时存储数据和指令。
CPU可以直接读取和写入寄存器中的数据。
内存是存储在计算机主存储器中的大量数据和指令。
CPU需要通过地址来访问内存中的数据和指令。
要编写高效的汇编语言程序,我们需要理解计算机的硬件原理和底层运行机制。
了解汇编语言可以提供对程序的细粒度控制,对程序性能的优化有很大帮助。
总的来说,汇编语言程序设计是一项复杂而有趣的任务。
山东大学_ 汇编语言 教程 手册 编程程序设计__课程试卷(B)
山东大学_ 汇编语言程序设计__课程试卷(B)一、单项选择题(每小题2分,共20分)1、下列数据()在汇编语言中是合法的。
A. 108D-108QB. 102B*0ABHC. HIGH AXD. 19BH+25D2、若栈顶的物理地址是20100H,当执行了指令CALL DWORD PTR[BX]后,栈顶的物理地址为()。
A. 20096HB. 20098HC. 200FCHD.200FEH3、已知AX=1234,BX=806AH,执行了指令SUB AH,BH后,标志位OF和CF的内容分别是()。
A.0,0B.0,1C.1,0D.1,14、已知在寄存器AX和BX中分别存放着一个无符号数据,在满足条件AX≧BX时转到标号OK去执行,不能实现该功能的程序段是()。
A..CMP AX,BXJNB OKB.CMP AX,BXJA OKC.CMP BX,AXJBE OKD.CMP AX,BXJNC OK5、已知AL和BX中存放的是带符号的数据,现要计算BX-AL,应该使用下述程序段()A. MOV AH,0 B CBWSUN BX,AX SUB BX,AXC. SUB BX,AL D SUB BL,ALSBB BH,06、假定用伪指令DA TA DB 12H,34H定义了两个字节数据,现需要将数据12H取入寄存器AL,将数据34H取入寄存器AH,能完成此功能的程序段是()A. MOV AX,DA TAB. MOV SI,DA TAMOV AX,[SI]C. MOV SI,OFFSET DA TAMOV AL,[SI+1]MOV AH,[SI]D. LEA SI,DA TAMOV AX,[SI]7、已知SP=100H,指令RET(远返回)执行后,SP的值为()。
A.106HB.104HC.0FCHD.0FAH8、假定寄存器AX的内容为-32768,在执行了指令NEG AH后,标志位SF和OF的内容为()。
A.0,0B.0,1C.1,0D.1,19.循环控制指令LOOP与循环体入口指令的距离只能在()范围内。
汇编语言程序设计试题答案
汇编语言程序设计试题答案汇编语言程序设计试题一、单项选择题(在每小题的四个备选答案中〜选出一个正确答案〜并将正确答案的序号填在题干的括号内。
每小题2分〜共50分)1. CPU发出的访问存储器的地址是()A. 偏移地址B. 物理地址C. 逻辑地址D. 段地址2. 使计算机执行某种操作的命令是( )A. 伪指令B. 标号C. 指令D. 助记符3. 若AX=3500H,CX=56B8〜当AND AX CX旨令执行后〜AX=()A. 1400HB. 77F8HC. 0000HD. 0FFFFH4. 计算机处理问题中会碰到大量的字符、符号〜对此必须采用统一的二进制编码。
目前〜微机中普遍采用的是( ) 码。
A. BCD 码B. 二进制码C. 十六进制码D.ASCII 码5. 下列关于8086CPU勺工作原理的描述错误的是()。
A(汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。
B(CPU在访问内存时〜采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。
C(任意时刻〜CS:IP指向的内容即是此刻CPU正在执行的指令。
D(传送指令能够更改所有通用寄存器的内容。
6( 一个有128个字的数据区〜它的起始地址为12ABH:00AB〜请给出这个数据区最末一个字单元的物理地址是, ,A(12C5BH B(12C59H C(12B6BH D(12BFEH7. 16位结构的CPU不一定具备的特性是()。
A. 运算器一次最多可以处理16位的数据B. 寄存器的最大宽度为16 位C. 地址总线为16 根D. 寄存器和运算器之间的通路为16 位8. 下列指令的书写正确的是, , 。
A( push alB( mov cs:[0],ds:[10]C( pop siD( mov ds:[0],29(在DEBUG:具中〜显示寄存器内容的命令是,,。
A. GB. DC. TD. R10.能够将ax中的内容送到内存0000:0200H处的指令序列是,, A(mov ds,0mov bx,200hmov [bx],ax B(mov ax,200hmov ds,axmov bx,0mov [bx],axC(mov ax,20hmov ds,axmov bx,0mov [bx],axD(mov bx,20hmov ds,bxmov bx,0mov [bx],ax11(若栈顶的物理地址为20100H H当执行完指令PUSH AX后〜栈顶的物理地址为, , 。
汇编语言程序设计习题及答案
汇编语言程序设计习题及答案汇编语言程序设计习题及答案汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。
虽然在现代计算机编程中,高级语言如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. 编写一个汇编程序,实现一个简单的迷宫游戏,玩家通过键盘控制角色在迷宫中移动,并找到出口。
《汇编程序设计》试题及答案
《汇编语言程序设计》2012级复习试题及答案一.单项选择题:3.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B)A.名字的第一个字符可以是大写英文字母及小写英文字母;B.名字的第一个字符可以是字母、数字及、@、_ ;C.名字的有效长度≤31个字符;D.在名字中不允许出现$。
5.当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。
A.1 B.2 C.3 D.由指令长度决定的6.下列属于合法的指令是( D )。
A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL7.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B )。
A.AX,BX,CX,DXB.BX,BP,SI,DIC.SP,IP,BP,DXD.CS,DS,ES,SS8.下列传送指令中有语法错误的是( A )。
A.MOV CS,AXB.MOV DS,AXC.MOV SS,AXD.MOV ES,AX10.与MOV BX,OFFSET VAR指令完全等效的指令是( D )。
A.MOV BX,VARB.LDS BX,VARC.LES BX,VARD.LEA BX,VAR11.在汇编语言程序中,对END语句的叙述正确的是( C )。
A.END语句是一可执行语句 B.END语句表示程序执行到此结束C.END语句表示源程序到此结束 D.END语句在汇编后要产生机器码12.将DX的内容除以2,正确的指令是(C)。
A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,114.下列数值表达式和地址表达式中,错误的是( D )。
A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM115.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( C )。
山东大学2013-2014汇编语言程序设计试题(含答案)
V2 DW 10 DUP(4) DA TA ENDS1、如下程序段,每条指令执行后(连续执行),AX 寄存器的内容是什么?(1).MOV AX,V1+4 ;(AX)=____0003H____(2).XOR AX,AX ;(AX)=_0000H_(3).NOT AX ;(AX)=__0FFFFH_____(4).MOV AX,TYPE V2 ;(AX)=_0002H_(5).MOV AX,V2-V1 ;(AX)=0006H_2、下列语句是否正确?错误的说明原因或改正(1).MOV CX,($-V1)/2 ;________________(2).ADD CS,BX ;_错,CS不能为目的寄存器_______________(3).MOV V1,V2 ;错,两个操作数不能都是存储器操作数_(4).MOV DS,1000H ;错,立即数不能直接传给段寄存器(5).RET 3 ;__正确3、设下面是一个程序段,请填充其中的空白。
功能:设在ADDR单元存放着Y的地址,下面程序统计Y中“1”的个数,并存入COUNT单元中。
(有问题)MOV CX,0MOV BX,ADDR ;①MOV AX,[BX]REP1:TEST AX, 0001H ;②JZ EEIT ;③JMP SHIFT ;④3.对于IBM-PC系统而言,CPU与外设之间的信息交换通常包括哪些方式?简要说明这些方式的特点。
4.简述汇编试验中用DEBUG显示、修改内存内容的方法。
1. 子程序:优点:模块化,节省内存,可被多次调用,编程效率高。
缺点:额外开销(保存返回地址,计算转向地址,传递参数等)大,增加了执行时间。
适用于子功能代码较长、调用比较频繁的情况。
宏调用:优点:参数传送简单,执行效率高。
缺点:不节省空间,适用于子功能代码较短、传参较多的情况。
2.70H,71H,72H,73H;70H,71H放偏移量;72H,73H放段地址;3.程序直接方式,程序中断方式,DMA方式4.-u -r四、编程(30分)1.写完整格式程序,功能:输入单个字符,如果是数字字符(0~9),则显示字符串“numeric”,否则显示字符串“nonnumeric”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.写宏定义,功能:对数组求和。数组名称BUFFER,COUNT单元存放元素个数,结果存入SUM单元。注:COUNT、BUFFER和SUM作为宏参数,不考虑溢出。
data segment
mess1 db ‘numeric’,13,10,’$’
mess1 db ‘nonumeric’,13,10,’$’
得分
阅卷人
二、阅读分析(20分)
阅读分析部分假设已有如下数据段定义:
DATASEGMENG
V1DW1,2,3
V2DW10 DUP(4)
DATAENDS
1、如下程序段,每条指令执行后(连续执行),AX寄存器的内容是什么?
(1).MOVAX,V1+4;(AX)=____0003H____
(2).XORAX,AX;(AX)=_0000H_
5.设CPU正在执行指令MOV AX,02H[BX],此时(CS)=31FFH, (DS)=10E4H, (SS)=21F0H, (IP)=0120H, (BX)=0002H, (BP)=0000H。这一指令目的操作数的寻址方式为_寄存器寻址_;源操作数的寻址方式为寄存器相对寻址,源操作数的段地址为10E4H,偏移地址为_0004H__。下一条即将执行的指令的逻辑地址为0120H,物理地址为_32110H_。
6.80x86系统的I/O地址总线宽度是20位的,所以寻址范围是_1M_,写入端口61H一个字的指令为_IN AX,61H_。
7.指令REP MOVSW执行过程中,使用了两个段寄存器DS和ES_,还使用了标志位__DF______确定字符串处理方向,另外,寄存器__CX__作为计数器。
8.对于RET指令来说,如果其属于NEAR属性的子程序,则从栈顶弹出一个字到寄存器_IP_;如果其属于FAR属性的子程序,则还需要从堆栈弹出一个字到寄存器_CS__。对于IRET指令来说,除了需要恢复前面两个寄存器,还需要从堆栈弹出一个字到寄存器FLAGS。
Call dec_div
Mov cx,1d
Call dec_div
Ret
Endp
Dec_div
Mov al,bl
cbw
Div cx
Mov bx,dx
Mov dl,al
Add dl,30h
Mov ah,02h
Int 21h
Ret
Dec_div endp
5.宏定义
Sum_array marco buffer,count,sum
情况。
2.70H,71H,72H,73H;70H,71H放偏移量;72H,73H放段地址;
3.程序直接方式,程序中断方式,DMA方式
4.-u -r
得分
阅卷人
四、编程(30分)
1.写完整格式程序,功能:输入单个字符,如果是数字字符(0~9),则显示字符串“numeric”,否则显示字符串“nonnumeric”。
4.简述汇编试验中用DEBUG显示、修改内存内容的方法。
1.子程序:
优点:模块化,节省内存,可被多次调用,编程效率高。
缺点:额外开销(保存返回地址,计算转向地址,传递参
数等)大,增加了执行时间。适用于子功能代码较
长、调用比较频繁的情况。
宏调用:
优点:参数传送简单,执行效率高。
缺点:不节省空间,适用于子功能代码较短、传参较多的
得分
阅卷人
一、填空(30分)
1.80386处理器有3种工作模式,分别是:____实模式_、______保护模式__、____虚86_______。
2.(AL)=43H,被看作无符号数时,对应的十进制数是:_67__;被看作带ASCII码时,对应的字符是:___C_____;被看作补码表示的带符号数时,对应的十进制数是:61___。若[X]补=43H,则[-X]补=_C3H_。
Local arr_sum
Mov ax,0
Mov bx,0
Mov cx,count
Arr_sum:
Add ax,buffer[bx]
Inc bx
Loop arr_sum
Mov sum,ax
Endm
ORDL,BL
该程序段完成的功能是:0or0
得分
阅卷人
三、简答(20分)
1.简述子程序和宏之间的异同。
2.在实模式下,类型1CH的中断向量存放在存储器的哪些单元?其中偏移量在哪些单元?段地址在哪些单元?
3.对于IBM-PC系统而言,CPU与外设之间的信息交换通常包括哪些方式?简要说明这些方式的特点。
MOVBX,ADDR;①
MOVAX,[BX]
REP1:TESTAX,0001H;②
JZEEIT;③
JMPSHIFT;④
INCCX
SHIFT:SHRAX,1;⑤
JMPREP1
EEITபைடு நூலகம்MOVCOUNT,CX
RET
4、阅读下面程序
MOVCL,4
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
(3).NOTAX;(AX)=__0FFFFH_____
(4).MOVAX,TYPE V2;(AX)=_0002H_
(5).MOVAX,V2-V1;(AX)=0006H_
2、下列语句是否正确?错误的说明原因或改正
(1).MOVCX,($-V1)/2;________________
(2).ADDCS,BX;_错,CS不能为目的寄存器_______________
mov dx,mess1
mov ah,09h
int 21h
exit:
mov dx,mess2
mov ah,09h
int 21h
ret
main endp
code ends
end start
4.十进制显示BL的无符号数
Binidec proc near
Mov cx,100d
Call dec_div
Mov cx,10d
data ends
code segment
assume cs:code,ds:data
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,01h
int 21h
sub al,0
jb exit
sub al,9
ja exit
3.CPU的标志寄存器中标志位可以分为两大类,其中一类称为状态标志位,另一类称为_控制__标志位。这些标志位中的AF为____辅助进位____标志位,TF为_陷阱_标志位。若(AX)=0E653H,(BX)=009AH,指令ADD AX, BX执行后,PF___0__,OF=___0_____。
4.对于无进制标记数字,汇编语言默认__十___进制数,DEBUG默认十六_进制数。
(3).MOVV1,V2;错,两个操作数不能都是存储器操作数_
(4).MOVDS,1000H;错,立即数不能直接传给段寄存器
(5).RET3;__正确
3、设下面是一个程序段,请填充其中的空白。功能:设在ADDR单元存放着Y的地址,下面程序统计Y中“1”的个数,并存入COUNT单元中。(有问题)
MOVCX,0