四川大学2004年汇编语言程序设计半期试题(堂下开卷)答案
《汇编语言》试题答案(试题库04)

《汇编语言程序设计》考试试卷答案1.a补码=29H, b补码=0BA H, 〔a+b〕补=E3 H ;则〔a-b〕补=6F H;2.BHE和A0;8088为准16位CP U,外部数据总线只有8位;3.分状态标志和控制标志两大类,主要区别:状态标志的值取决于一个操作完成后算术逻辑部件ALU所处的状态,控制标志的值是通过指令人为设置的,以控制程序的执行。
4.CS和IP;5.BX= 9B8D H, BP= 0200 H 。
6.16H或22;80H,70H,60H,50H;7.奇/偶校验错误、溢出错误、帧错误功能;8.读写信号(RD或WR), 存储器/输入输出(M/IO)9.状态信息,数据总线10.中断类型码12H或18, 中断服务入口地址5030:3800H11.CX=0或(ZF)=1二、① 6202H ② 6232H ③ 0632H ④ 3632H三、对(xxx)求补码数的绝对值1. 写出代码段中语句的注释①保存前缀段地址②压入偏移量③数据段赋值④取待测数据⑤设置标志⑥若为正,则结束⑦为负数.求补⑧求补后的结果送回原单元2. 程序的功能①当(xxx)>0时,(xxx)不变②当(xxx)<0时,对其求补。
四、 1. D 2. E 3. L 4. C 5. F 6. B7. A 8. K 9. J 10.I 11. G 12. H五、1. 总线接口部件Eu与执行部件BIU的协调工作过程如下:(1) 每当指令队列中有两个空字节(8088是一个空字节)时,BLU就会自动把下一指令取到指令队列中。
(2 ) Eu总是从指令队列的前部取指令,并且执行。
与此同时,BLU按步骤(1)工作;在Eu执行指令中,如果需要访问存储器或I/O部件,而且BLU也允许,则会转入总线周期。
(3)如果指令队列已满,而且BLU又没有总线访问的请求,则BIU进入空闲状态。
(4)注指令队列中装入指令时,是按照指令在存储器中的排列顺序进行的,但执行转移、调用和返回指令时,下一条要执行的指令就不是存储器中紧接着的那条指令了。
四川大学汇编考试题及答案1

四川大学期末考试试题(闭卷)(2006-2007学年第2学期)课程号:课程名称:汇编语言程序设计(B卷)任课教师:适用专业年级:计算机科学与技术05级学号:姓名:考试须知四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。
有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。
四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。
有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。
题号一二三四五六卷面成绩得分阅卷教师阅卷时间一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分1.下面的数值表示中,和100相等的是哪一个()(A)B (B)100H (C)64H (D)642.如果(SP)=30H,执行PUSH BX指令后,(SP)=()(A)28H (B)2EH (C)32H (D)31H3.如果(AL)=35H,执行AND AL,0FFH指令后,CF=()(A)0 (B)1(C)2 (D)和执行AND AL,0FFH指令前的取值保持一致4.以下指令中,执行后要影响标志位的指令为()(A)MOV AL,BL (B)SAHF (C)NOT CL (D)PUSHF5.对于SAR指令的相关原理,正确的描述为()(A)执行SAR指令后,目的操作数最高位补充0(B)该指令实质上与SHR指令没有区别(C)如果移位次数大于1,则移位次数必须预先存放在CL寄存器(D)该指令不影响CF标志位6.关于SUB指令对OF标志的影响,正确的描述为()(A)当程序员把SUB指令的操作数看作无符号数时,SUB指令不影响OF标志(B)当程序员把SUB指令的操作数看作无符号数时,SUB指令要影响OF标志,但是程序员认为它此时没有意义(C)SUB指令有时会影响OF标志,但有时不会(D)程序员使用SUB指令时总是认为它所影响的OF标志是有意义的7.DEBUG中,T命令的功能为()(A)显示当前系统时间(B)查看指定内存单元的内容注:试题字迹务必清晰,书写工整。
四川大学2018—2019学年第2学期大二计算机专业《汇编语言程序设计》考试试卷(附答案)

四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)(闭卷时间120分钟)院/系年级专业姓名学号1、简述计算机系统组成。
2、程序中用什么语句来结束程序的执行?用什么语句来表示程序的结束和指出程序执行的起点?3、除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法?4、把下列二进制数转换为十六进制数和十进制数。
(1)01101101 (2)10110010 (3)1111115、下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?如果用16位二进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69)6、下面的程序能否输出字符0~9?如不能,应如何修改?CODE SEGMENTASSUME CS:CODEK=30HJ DW 0START: MOV DL, KMOV AH, 2INT 21HK=K+1INC JCMP J, 10JNZ STARTMOV AH, 4CHINT 21HCODE ENDSEND START7、在宏定义中有时需要LOCAL 伪操作,为什么?8、根据以下要求写出输入输出指令:(1) 读61H端口(2) 写20H端口(3) 读3F8H端口(4) 写3F9H端口9、主程序从键盘输入一个八位的二进制数,对其作求补码操作,用子程序对求补后的值以二进制形式显示。
(正数的补码=输入)10、编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字母。
四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)参考答案1、计算机由中央处理器CPU,存储器,输入系统,输出系统组成,由系统总线连接在一起。
CPU包括运算器和控制器,运算器执行指令,控制器负责计算机的控制。
汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案[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语句的叙述正确的是()。
【汇编语言程序设计】期末考试试卷及参考答案

中
ADC? AH,0?
JNC? DONE
(2)MOV?AX,SUM ; 总和值超过 AX 寄存器的容量,恢复 AX 的原
值
JC? EXIT
DONE:INC?BX
(3)LOOP NEXT ; 将计数器 CX 减 1,并判断是否继续下一次循环
EXIT:HLT
2. BUFFER 为起始地址的存储区域中存放有 100 个字节数据,现将其首、尾 颠倒过来,重新排放这 100 个字节数据。请在程序中的空格处填入适当 的指令使其完整。 MOV? CX,32H ;循环 50 次
BLOCK? DW?X1,X2,…,XN COUNT? EQU ($-BLOCK)/2
RESULT?DW? COUNT,?
LEA?BX,BLOCK-2
MOV?CX,RESULT
XOR?AX,AX
GO_ON:ADD?BX,2
CMP?AX,[BX]
JAE?NEXT
MOV?AX,[BX]
NEXT: LOOP?GO_ON
即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、单项选择题(每小题 2 分,共 20 分)
1.一个有 128 个字的数据区,它的起始地址为 12ABH:00ABH,请给出这个数
据区第一个字单元的物理地址是( A )。
A.12B5BH ;
B.12B6BH ;
C.12C59H;
二、指出下列指令的出错原因,并改正。(每小题 2 分,共 12 分)
1. MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或 MOV BX,DX
2. MOV CS,AX;代码段寄存器 CS 不能作目的操作数,改正为 MOV DS,AX
汇编语言程序设计试题参考答案

汇编语言程序设计参考答案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.为了使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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2004年〈汇编语言程序设计〉半期试题(堂下开卷)答案
一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。
1.寄存器:计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。
2.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。
3.段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。
4.寻址方式:指令获取操作数的方式。
5.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。
二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?
答案:二进制为01100100B,十六进制为64H
2.假设(DS)=0C00H,(BX)=0210H,对于指令MOV DS:100H[BX],AL,其目的操作数的物理地址为多少?
答案:EA = (BX)+0100H = 0310H,物理地址= (DS)*16 + EA = 0C000H + 0310H = 0C310H
3.假设(BX)=0100H,(SI)=0020H,对于指令ADD DL,[BX][SI],其源操作数的偏移量为多少?
答案:EA = (BX)+(SI)+ 0 = 0120H
4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?
答案:每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H – 5*2 =0060H -000AH = 0056H
5.对于一个十进制数– 80,其二进制补码表示形式为多少?
答案:首先求得二进制真值为– 01010000B,负数补码为变反加1的结果,即10110000B
三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析
正确给3分,判断错误不给分。
1.MOV CS,0600H
参考答案:错误,不能使用MOV指令传递立即数给CS
2.PUSH 074CH
参考答案:错误,单操作数指令不能使用立即数
3.ADD AX,CL
参考答案:错误,寄存器长度不匹配
4.OR BX,[CX]
参考答案:错误,CX不能用于存储器寻址
四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。
(寄存器中的内容请使用十六进制形式给出)
1.阅读如下程序片段
MOV AL,4CH
MOV BL,86H
ADD AL,BL
执行上述程序片段后,(AL)= 0D2H (1分),(BL)= 86H (1分),CF= 0 (1分),OF= 0 (1分),PF= 1 (1分)
2.阅读如下程序片段
MOV AL,0F3H
MOV DL,0C4H
ADD AL,DL
AND AL,0FH
执行上述程序片段后,(AL)= 07H (1分),(AF)= 不确定(1分),CF= 0 (1分),OF= 0 (1分),PF= 0 (1分)
注意:逻辑运算指令中,除NOT指令外,CF、OF均置0,AF为不确定
3.阅读如下程序片段
MOV AL,6FH
MOV CL,04H
ROL AL,CL
执行上述程序片段后,(AL)= 0F6H (2分),(CL)= 04H (1分),
CF= 0 (1分),OF= 不确定(1分)
注意:移位指令中,当指令的移位次数大于1时,OF为不确定
4.阅读如下程序片段
MOV AX,0632H
MOV BX,0C202H
SUB AL,BL
SBB AH,BH
INC AX
执行上述程序片段后,(AX)= 4431H (2分),(CF)= 1 (2分),
OF= 0 (1分)
注意:INC指令不影响CF标志位
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H
MOV BX,0024H
LEA BX,[BX]
AND BX,0FFH
ADC BX,[BX]
执行上述程序片段后,(BX)= 287AH (3分),(CF)= 0 (2分),
OF= 0 (1分)
6.阅读如下程序片段,假设(SP)=0064H
MOV AX,0001H
MOV BX,0002H
PUSH AX
PUSH BX
POP AX
POP BX
执行上述程序片段后,(AX)= 0002H (2分),(BX)= 0001H (2分),(SP)= 0064H (1分)
五.程序设计题(本大题共3小题,每小题5分,共15分)(注:不是唯一答案)
1.试编写一程序片段,实现BL高4位与低4位相互交换(5分)
参考解答:
MOV CL, 4
ROL BL, CL
2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/ 2的功能(AX中的数据理解为补码)(5分)
参考解答:
MOV BX, AX
MOV CL, 2
SAL AX, CL
ADD AX, BX
ADD AX, 14
SAR AX, 1
3.试编写一完整程序,实现88242567H与0A435C218H两个32位无符号数相加的功能。
(要求编写完整源程序,含程序框架)(5分)
参考解答:
DATA SEGMENT
V AR1 DD 88242567H
V AR2 DD 0A435C218H
V AR3 DD ?
DATA ENDS
STACK1 SEGMENT STACK
DW 40H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
BEGIN: MOV AX, DATA
MOV DS, AX
MOV AX, V AR1
ADD AX, V AR2
MOV V AR3, AX
MOV AX, V AR1+2
ADC AX, V AR2+2
MOV V AR3+2, AX
MOV AH, 4CH
INT 21H CODE ENDS
END BEGIN。