IPM-BC汇编语言期末复习-2

合集下载

《汇编语言程序设计》期末复习题和答案.doc

《汇编语言程序设计》期末复习题和答案.doc

《汇编语言程序设计》期末复习题及答案一、选择(30题)1.下列是8位带符号二进制数的补码,其中最大的是(B )。

B、000000012.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现(C )C、占内存空间大,但速度快3.数据定义为:EE DB 3, 4CC DW 3456H, 6789H执行指令“MOV CX, WORD PTR EE+1” 后,(CX) = ( B )B、5604H4.有如下指令序列:MOV AL, 95HMOV CL, 2SAR AL, CL上述指令序列执行后,AL的内容是(D )D、0E5H5.设A=186m B=273R,C=0BB E把这三个数看成无符号数,则它们之间的关系是(D )D、A<B=C6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是(D )D、LEA AX, [BX] [SI]7.要从端口1234H中读入8位数据,其指令应是(C )C、MOV DX, 1234HIN AL, DX8.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是(B )B、CX尹。

且ZF=O9.8088/8086存储器分段,每个段不超过(D )D、64K个字节10.表示过程定义结束的伪指令是(A )A、ENDP11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D )D、CS12.假定(SS) =1000H, (SP) =0100H, (AX) =5609H,执行指令PUSH AX 后,存放数据56H的物理地址是(D )D、100FFH13.执行“SUB AX, [BP] [DI] ”指令,取源操作数时,使用的物理地址表达式是(A )A、16*SS+BP+DI14.设AX中有一带符号数8520H,执行“SA R AX, 1”指令后,AX中的值是(C )C、0C290H15.设(BX) =1234H, (DS) =2000H, (21234H) =5678H,则指令“LEA SI, [BX] ” 执行后的结果是:(B )B、SI=1234H16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A )A、JNE17.设DF=O, (SI) =20H, (CX) =10,执行“REP LODSW"指令后,SI 中的内容是(C )C、34H18.在程序执行过程中,IP寄存器中始终保存的是(B )B、下一条指令的首地址19.设SP初值为2000H,执行指令“POP AX”后,SP的值是(A )A、2002H20.若AX=3500H, CX=56B8H,当AND AX, CX 指令执行后,AX= ( A )A、1400H21.汇编源程序时,出现语法错误的语句是(A )A、MOV DS, 1200H22.将数据1234H存放在存储单元中的伪指令是(C )C、DATA1 DB 34H, 12H23.下面指令执行后,可能改变AL寄存器内容的指令是(D )D、AND AL, BL24.操作数地址存放在寄存器的寻址方式称为(B )B、寄存器间接寻址25.用户为了解决自己的问题,用汇编语言所编写的程序,称为(B )B、汇编语言程序26.用DOS功能调用时,子功能调用的编号应放在(C )C、AH27.提供串指令中目的操作数地址的是(C )C、ES: [DI]28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B )B、BX, BP, SI, DI29.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是(A )A、2025 : 0F2A30.中断向量表中的每个中断向量所占内存空间为:(B )B、4个字节二、填空(30题)1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS 中。

总复习_汇编语言第二部分

总复习_汇编语言第二部分

假设:
(DS)=2000H,(BX)=1256H,(SI)=528FH, 位移量=20A1H,(232F7H)=3280H,(264E5H)=2450H。 例9 JMP BX 则执行该指令后(IP)=1256H 例 10 JMP TABLE[BX] 则执行该指令后(IP)=(16d×(D)十 (BX)十位移量) =(20000 十 1256 十 20A1) =(232F7H) =3280H 例 11 JMP [BX][SI] 则指令执行后(IP)=(16d×(DS)十(BX)十(SI)) =(20000 十 l256 十 528F) =(264E5H) =2450H (三)段间直接转移 指令中直接提供了转向段地址和偏移地址,所以只要用指令中指定的偏移地址取代 IP 寄存器的内容, 用指令中指定的段地址取代 CS 寄存器的内容就完成了从一个段到另一个 段的转移操作,如下图所示。
第一节
IBM PC 机的寻址方式
一、与数据有关的寻址方式 (一)立即寻址方式 操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放代码段中, 这 种操作数叫立即数(相当高级语言的常量) 。立即数可以是 8 位或 16 位数,若是 16 位数则 高位字节存放在高地址中,低位字节存放在低地址中。这种方式如下图所示:
如果指令中指定的寄存器是 BX、SI、DI,则操作数在数据段(DS)中,所以用 DS 寄 存器的内容作为段地址,即操作数的物理地址为: 物理地址=16d×(DS)十(BX) 或 物理地址;16 d×(DS)十(SI) 或 物理地址=16d×(DS)十(DI) 如指令中指定 SP 寄存器,则操作数在堆栈段(SS)中,段地址在 SS 中,所以操作数的物 理地址为: 物理地址=16d×(SS)十(SP)
第三章

汇编语言期末复习要点

汇编语言期末复习要点

编译程序根据各变量的排列顺序和所占用的字节数,
计算出各变量的偏移量,以直接寻址方式或作中所有其他位置的该
变量符号。
8086汇编语言程序设计
18
3. 其他伪指令 ORG 、$:从哪里开始编译和编译到哪里了(偏移量) SEG、OFFSET 、TYPE: ——返回段基值、偏移量和变量类型
存器带有各种“附加”功能,这些“附加”功能是通
过机器指令的执行来实现的。
8086汇编语言程序设计
4
3. 8086/8088 CPU 的寄存器
8086/8088 CPU 的内部结构
8086汇编语言程序设计 5
三、存储器寻址方式及堆栈
1. 字节单元定位和物理地址
内存
地址 译码 逻辑 CPU 地址总线 数据总线
⑥ 基址变址寻址:xchg ax,[bx+si]
⑦ 相对基址变址寻址:push var[bx+si]
8086汇编语言程序设计 9
6. 堆栈
① 堆栈的“生成”和空栈的状态:
—— SP 的初值和堆栈容量、栈顶、栈底的关系; ② PUSH 和 POP 的行为方式: —— 栈指针 SP 的变化和数据入、出栈; ③ PUSHF 和 POPF 的默认操作数:标志寄存器;
④ 移位及循环移位类 ⑥ 标志位操作指令
② 8086 instructions
3. 掌握用 debug 学习、研究指令的方法
8086汇编语言程序设计
11
4. 特别提示:
① 目标操作数不能为立即数;
② 除了串操作指令外,双操作数不能同为存储器操作数; ③ 段寄存器只能: mov ax,ds mov ds,ax push ds pop ds
① 寄存器寻址:xor al,al

汇编语言程序设计期末复习

汇编语言程序设计期末复习

《汇编语言程序设计》期末复习1.在无段超越说明时,下列操作分别自动选择哪个段:通用数据读写_______,取指令_______。

2.通常变量在数学中是无属性的。

在计算机中,由于变量是用()表示的,因此,它存在三个基本属性,即:()属性,()属性,()属性。

3.指出下列用处的寄存器名:在数据串传送指令中作目的数段地址________和偏移地址_______。

4.在指令ADD[BX],AH中,两个操作数的寻址方式分别是()和()。

5.指令系统中指令的第一字节为________。

6.计算机唯一能直接执行的语言是______________。

7.在指令MOV AL,[SI+5]中, 两个操作数的寻址方式分别是_________和__________.8.逻辑移位指令SHL用于();A、带符号数乘2B、带符号数除2C、无符号数乘2D、无符号数除2而算术移位指令SAL用于()。

A、带符号数乘2B、带符号数除2C、无符号数乘2D、无符号数除29.指出下列用处的寄存器名:将要执行的指令所在的段地址_________和偏移地址_________。

10.与LEA BX,NUM1等价的指令为()。

[1]MOV BX,NUM1 [2]MOV BX,OFFSET NUM1[3]MOV BX,DS:NUM1 [4]BX EQU NUM111.一个汇编语言源程序一般有几个段组成,每个段都是_________的逻辑单位。

12.标号和变量所具有的三种属性分别为____________属性、_____________属性和_____________属性。

13.栈操作地址由()给出。

[1]ES:DI [2]DS:SI[3]CS:IP [4]SS:SP14.在执行指令过程中,为了取出立即寻址方式的操作数,需访问______________次内存。

15.一个字符的ASCII值占用( ) 二进制位。

A. 6B. 7C. 8D. 916.把若干个模块连接起来成为可执行文件的系统程序称为( )。

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案

汇编语言期末考试试题及答案------------------------------------------作者------------------------------------------日期汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题 分,共 分).指令☺ ∙☞✌∙❆∙☠☜属于参考答案为 ✌.段内转移直接寻址.段内转移间接寻址.段间转移直接寻址.段间转移间接寻址☯解析 略.下列叙述正确的是参考答案为 ✌.对两个无符号数进行比较采用 指令,对两个有符号数比较用 指令 .对两个无符号数进行比较采用 指令,对两个有符号数比较用 指令 .对无符号数条件转移采用☺✌☜☺☠指令,对有符号数条件转移用☺☝☜☺☠☹指令.对无符号数条件转移采用☺☝☜☺☠☹指令,对有符号数条件转移用☺✌☜☺☠指令☯解析 对于无符号数和有符号数的比较都采用 指令;指令是串比较指令;对两个无符号数的条件转移指令应是:☺✌☜、☺☠、☺ ☜、☺☠✌;对两个有符号数的条件转移指令应是:☺☝☜、☺☠☹、☺☹☜、☺☠☝。

.一个有 个字的数据区,它的起始地址为 ✌☟: ✌☟,请给出这个数据区最末一个字单元的物理地址是参考答案为 ✌. ☟. ☟. ☟. ☞☜☟☯解析 末字与首字相隔( - =) 个字,且每个字占用 个字节,因此末字单元的物理地址应为:首字单元的物理地址+( - ) 即∙✌☟☟+ ✌☟+( - ) = ☟。

.在下列指令的表示中,不正确的是参考答案为 ✌. ✞∙✌☹,☯✠✋.☺ ∙☟❆∙☠✋. ☜∙☯✠. ✞☹∙☹☯解析 当只有一个存储器操作数时,这个操作数的类型不明确,例如选项 中的☯✠,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如☜∙✡❆☜∙❆∙☯✠∙或∙☜∙∙❆∙☯✠但是在题目的选项 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

计算机组成原理与汇编语言程序设计(第2版)期末复习

计算机组成原理与汇编语言程序设计(第2版)期末复习
数据传输方式
串行传输和并行传输的比较和选择。
04
运算器
运算器的基本功能
加、减、乘、除等基本运算功能。
运算器的组成
算术逻辑单元、累加器、寄存器等组成部分的介绍。
运算器的实现方式
组合逻辑电路和微程序控制电路的比较和选择。
运算器的工作过程
运算器的控制信号和工作时序的介绍。
存储器系统
存储器分类
RAM、ROM、Flash Memory等存储器的 分类和特点。
了解输入输出指令的种类和使用方法,如IN、 OUT等。
中断处理
理解中断的概念和处理机制,包括中断类型、 中断处理程序等。
中断服务例程
掌握中断服务例程的设计方法,包括中断处 理程序的编写和调试。
03
实践操作
实验环境与实验要求
实验环境
学生需要在具备汇编语言编译环境和 计算机硬件设备的实验室环境下进行 实验。
参与讨论和交流
可以参加学习小组或线上论坛,与同学和老师进行讨论和交流,共同 解决问题和提高学习效果。
学习资源推荐
教材和参考书
在线课程
实验和实践
建议阅读《计算机组成原理 与汇编语言程序设计(第2版)》 教材,并参考相关参考书目。
可以观看《计算机组成原理 与汇编语言程序设计(第2版)》 的在线课程,加深对知识点 的理解。
指令执行过程
取指令、解码、执行和写回等阶段的 介绍。
RISC和CISC的比较
两种指令系统的特点和应用场景的比 较。
02
汇编语言程序设计
汇编语言基础
汇编语言概述
汇编语言是一种低级语言,与机器语言相对应,用于 直接控制计算机硬件。
汇编指令格式
了解汇编指令的基本格式,包括操作码、操作数等部 分。

(完整)汇编语言期末考试试题及答案,推荐文档

(完整)汇编语言期末考试试题及答案,推荐文档

汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即 12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为: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中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

汇编语言期末考试复习题及参考答案-专科

汇编语言期末考试复习题及参考答案-专科

《汇编语言》复习题一、填空题1、26.25D= B= O= H2、-56D的原码为 B,反码为 B,补码为B。

3、0C51H的反码为 B,补码为 B。

4、十进制数87的压缩BCD码为 B,非压缩BCD码为 B。

5、若(CS)=0100H,(IP)=1051H,则当前指令的物理地址为。

6、设(BX)=1000H,(DI)=0010H,(DS)=2100H,在指令MOV AX,[BX+DI]中,源操作数的寻址方式为;物理地址为。

7、设BUF为数据段0234H单元的符号名,其中存放的内容为3456H。

写出下列指令单独执行后的结果。

(1)MOV AX,BUF (AX)=(2)LEA AX,BUF (AX)=8、子程序的参数传递方法包括、、。

9、实模式下存储器的20位物理地址由加形成。

10、25= B= O= H11、32D的原码为 B,反码为 B,补码为 B。

12、十进制数15的压缩BCD码为;非压缩BCD码为。

13、8086CPU可以直接寻址的内存空间大小为,程序员在编程时需要把存储器分段,每段的大小不能超过。

14、设DI=0100H,DS=3000H,在指令MOV CX,[100+DI]中,源操作数的寻址方式为;物理地址为。

15、汇编语言源程序有三种基本结构形式:顺序结构、和。

16、从功能上,8086CPU分为和两部分。

17、直接输入/输出指令的最大端口号是,间接输入/输出指令的端口号必须送寄存器。

18、DIV BX指令执行后,余数在中,商在中。

二、选择题1、下列通用数据传送指令的几种传送中,错误的传送方式是( )。

A、从累加器到存储器B、立即数到存储器C、从寄存器到存储器D、从存储器到存储器2、使进位位置1的指令是( )。

A、CLCB、CMCC、STCD、NOP3、设AL,BL中都是有符号数,当AL<=BL时转至NEXT处,在CMP AL,BL指令后,应选用正确的条件转移指令是( )。

A、JBEB、JNGC、JNAD、JNLE4、指令LOOPZ的循环执行条件是( )。

汇编语言期末复习题大全(免费)

汇编语言期末复习题大全(免费)

汇编语言期末复习题DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题第1章:基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。

DXA、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。

DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是否被CPU响应要受( IF )的控制。

DX4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。

DX5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在 SS 寄存器中。

TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号) 表示注释的开始。

TK7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。

TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。

TK9、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。

在此,称引起紧急事务的事件为中断源。

TK10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。

TK11、计算机系统通过接口与外围设备通信。

TK12、键盘I/O、显示I/O和打印I/O分别对应 16H 、 10H 和 17H 号中断。

TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。

每个字的第一个字节为显示字符的 ASCII码,第二个字节为显示字符的属性。

TK14、简述上机运行汇编语言程序的过程。

JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。

《计算机组成原理与汇编语言程序设计》期末复习

《计算机组成原理与汇编语言程序设计》期末复习

《计算机组成原理与汇编语言程序设计》期末复习第2章 计算机中的信息表示1.掌握十进制转换为二进制、十进制和十六进制互相转换。

注意整数和小数部分需要分别转换。

转换。

p27 p28 p27 p282.已知X 原,求X 补或真值。

已知X 反,求真值。

,求真值。

p30 p30 p30、、3131、、3232、、333.掌握补码左移和右移的移位规则。

.掌握补码左移和右移的移位规则。

4.掌握带符号定点整数的原码绝对值绝对值最大正数、最大负数,补码绝对值最大负数,反码绝对值最大负数。

反码绝对值最大负数。

p34 p34 5.掌握浮点数格式,浮点数的规格化(条件)。

.掌握浮点数格式,浮点数的规格化(条件)。

p35 p35 p35、、、、、、p36 p366.当给定某浮点数字长,阶码,阶符,补码表示,.当给定某浮点数字长,阶码,阶符,补码表示,R=2R=2R=2;尾数,数符,补码表示;规格化的;尾数,数符,补码表示;规格化的条件后,求其绝对值最大负数、绝对值最小负数、非零最小正数。

条件后,求其绝对值最大负数、绝对值最小负数、非零最小正数。

p37 p377.隐地址的概念.隐地址的概念 p41 p418.掌握立即寻址、直接寻址、寄存器寻址、间接寻址、变址寻址、寄存器间接寻址(包括自增型和自减型)自增型和自减型) p45 p45 p45、、p46p46、、p47p47、、p489.堆栈的概念.堆栈的概念 p50 p50第3章 CPU 原理1.并行加法器和进位链的概念.并行加法器和进位链的概念 p60 p602.进位产生函数和进位传递函数的概念.进位产生函数和进位传递函数的概念 p60 p603.掌握补码加法运算和补码减法运算的概念.掌握补码加法运算和补码减法运算的概念 p64 p64 4.掌握采用变型补码表示的数进行加减运算时,发生溢出的条件.掌握采用变型补码表示的数进行加减运算时,发生溢出的条件 p67 p675.掌握浮点数加减运算的规则(主要是对阶、尾数运算的方法).掌握浮点数加减运算的规则(主要是对阶、尾数运算的方法) p69 p696.掌握无符号数整数不恢复余数除法的基本步骤.掌握无符号数整数不恢复余数除法的基本步骤 p75 p757.程序计数器PC 的作用8.指令寄存器的作用.指令寄存器的作用9.结合图3-13了解在模型机中数据传送的过程。

最新汇编语言-期末考试-试题

最新汇编语言-期末考试-试题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.CPU要访问的某一存储单元的实际地址称()A.段地址B.偏移地址C.物理地址D.逻辑地址2.某存储单元的物理地址是12345H,可以作为它的段地址有()A.2345H B.12345HC.12340H D.1234H3.执行后使BX=0的同时也使CF=0,OF=0的指令是()A.XOR BX,BX B.OR BX,BXC.AND BX,BX D.CMP BX,BX4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是()A.CX≠0且ZF=1B.CX≠0且ZF=0C.CX≠0或ZF=1D.CX≠0或ZF=05.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是()A.DAA校正指令的功能已自动加在AH中B.进位值在AF中,校正后根据AF内容再加在AH中C.进位值在CF中,校正后根据CF内容再加在AH中D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中6.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是()A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清07.在执行下列指令时,需要使用段寄存器DS的指令是()A.STOSW B.ADD AL,CLC.NEG BX D.INC DA[BX]8.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()A.ADD BH,01H B.OR BH,01HC.XOR BH,01H D.TEST BH,01H9.完成对CL寄存器的内容乘以4的正确操作是()A.ROL CL,1 B.MUL 4ROL CL,1C.SHL CL,1 D.MOV CL,2SHL CL,1 SHL CL,CL10.下面各传送指令中,正确的是()A.MOV [DI],[SI]B.MOV[DX+DI],ALC.MOV WORD PTR [BX],0100H D.MOV AL,BX11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()A.名字的第一个字符可以是大写英文字母及小写英文字母B.名字的第一个字符可以是字母、数字及、@、_C.名字的有效长度≤31个字符D.在名字中不允许出现$12.要实现使BETA的值为56,应采用语句为()A.BETA DB 56B.BETA DB 56HC.BETA EQU 56D.BETA EQU 56H13.REPZ CMPSW指令,重复执行的终止条件是()A.CX=0或ZF=0B.CX=0且ZF=0C.CX=0或ZF=1D.CX=0且ZF=114.下面程序段执行后,AL中的内容是()MOV AX,8833HADD AL,AHDAAA.21B.21HC.0C1H D.0DDH15.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()A.ZF=1B.ZF=0C.SF=1D.SF=016.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()A.JNC LOP1B.JA LOP1C.JC LOP1D.JGE LOP117.在下列串操作指令中,同时使用源串和目的串地址指针的指令是()A.STOSW B.LODSWC.SCASW D.CMPSW18.设AL=0AH,下列指令执行后能使AL=05H的是()A.NOT AL B.AND AL,0FHC.XOR AL,0FH D.OR AL,0FH19.DA1 DW‘AB’,‘CD’,‘EF’,‘GH’()┇MOV AX,DA1+3指令执行后AX中的内容是A.‘EF’ B.‘CD’C.‘BC’ D.‘FC’20.使用DOS系统功能调用时,使用的软中断指令是()A.INT 21 B.INT 10HC.INT 16H D.INT 21H二、填空题(本大题共12空,每空0.5分,共6分)请在每小题的空格中填上正确答案。

《汇编语言程序设计》期末复习提要

《汇编语言程序设计》期末复习提要

《汇编语言程序设计》课程期末复习提要第一章数据格式及其转换内容提要1、计算机内部的数字和程序都是用二进制数的形式来表示、存储和运算的。

十进制数是人们习惯使用的数据,输入、输出的数据多是以十进制数形式表示。

十六进制数用于简化二进制数,它的书写和阅读比二进制数更方便。

但在计算机内并不真正使用十六进制进行处理。

计算机只能识别二进制数和以二进制数表示的机器码。

考核要求:熟练掌握不同进制的表示及相互转换。

例如:100=()B=()Q=()H10101010B=()Q=()H=()D2、计算机内以二进制码来表示十进制数时,即产生BCD编码。

BCD码分为压缩和非压缩的BCD码两种,压缩的BCD码用4位二进制数表示1位十进制数字,非压缩的BCD码用8位二进制数表示1位十进制数字。

3、计算机内以ASCII码来表示字符。

共有128个ASCII码来表示计算机处理的常用字符。

其中字符0、大写字母A、小写字母a的ASCII码分别为30H,41H,61H,经常使用。

4、带符号数有原码、反码和补码三种表示方法,在计算机内使用补码表示和存储。

考核要求:任意给定一个带符号数(正数或负数),求对应的补码。

例如:[+34]补码=? [-18]补码=?5、目前的大多数计算机都采用冯·诺依曼体系结构,由CPU、存储器和I/O接口电路通过三总线连接而成。

CPU由控制器和算术逻辑单元组成,三总线是指数据总线、地址总线和控制总线。

计算机的工作过程是:CPU工作首先从内存单元取指令,然后把指令进行译码后再执行。

计算机的运行过程就是一个不断重复的取指令、译码和执行的过程。

第2章 8086 CPU中寄存器的结构和使用第3章存储器的分段内容提要1.8086 CPU包括两部分,总线接口单元BIU和执行部分EU,这两部分并行工作,分别负责取指令和执行指令。

(重点理解2部件的功能及协同配合关系)2.灵活掌握与汇编程序设计关系最密切的是CPU内的寄存器组。

汇编语言期末考试试题及答案培训讲学

汇编语言期末考试试题及答案培训讲学

汇编语言模拟试题及答案一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分)1.指令JMP FAR PTR DONE属于参考答案为:CA.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址[解析]略2.下列叙述正确的是参考答案为:CA.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令[解析]对于无符号数和有符号数的比较都采用CMP指令;CMPS指令是串比较指令;对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:CA.12CSBHB.12B6BHC.12C59HD.12BFEH[解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为:首字单元的物理地址+(128-1)×2即 12ABH×10H+00ABH+(128-1)×2=12C59H。

4.在下列指令的表示中,不正确的是参考答案为: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中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

汇编语言期末复习题

汇编语言期末复习题

汇编语言期末复习题汇编语言期末复习题DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释v JD:简答题CXFX:程序分析题CXTK:程序填空题BC:编程题基础知识1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。

DXA、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。

DXA、名字项B、操作项C、操作数项D、注释项3、可屏蔽中断就是它的请求是否被CPU响应要受( IF )的控制。

DX4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。

DX5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在 SS 寄存器中。

TK6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释的开始。

TK7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。

TK8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。

TK9、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。

在此,称引起紧急事务的事件为中断源。

TK10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。

TK11、计算机系统通过接口与外围设备通信。

TK12、键盘I/O、显示I/O和打印I/O分别对应 16H 、 10H 和17H 号中断。

TK13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。

每个字的第一个字节为显示字符的 ASCII码,第二个字节为显示字符的属性。

TK14、简述上机运行汇编语言程序的过程。

JD答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题学院〔系〕:学号::计分:一、项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号。

每题1分,共10分)1.CPU发出的访问存储器的地址是( )A.物理地址B.偏移地址C.逻辑地址D.段地址2.将高级语言的程序翻译成机器码程序的实用程序是( )A.编译程序B.汇编程序C.解释程序D.目标程序3.DEC BYTE PTR[BX]指令中的操作数的数据类型是( )A.字B.双字C.字节D.四字4.在以下语句中,BUFFER称为( )BUFFER DB 01H,0AHA.符号B.变量C.助记符D.标号5.串操作指令中,源串操作数的段地址一定在( )存放器中。

A. CSB. SSC. DSD. ES6.使计算机执行某种操作的命令是( )A.伪指令B.指令C.标号D.助记符7.将数据5618H存放在存储单元中的伪指令是( )A. DATA1 DW 1856HB. DATA1 DB 18H,56HC. DATA1 EQU 5618HD. DATA1 DB 18H,00H,56H,00H8.假设AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )A. 1400HB. 77F8HC. 0000HD. 0FFFFH9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。

目前,微机中普遍采用的是( )码。

A. BCD码B.二进制码C.ASCII码D.十六进制码10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为( )A.汇编语言B.高级语言C.机器语言D.低级语言二、填空题(每空1分,共20分)1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。

2.通常所说的计算机系统包括________和________两大局部。

3.8086/8088存储器分四个段,这四个段的段名所对应的段存放器分别是________、________、________、________。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习 – 编程技术
保山学院 信息学院
张彬彬
2012年6月21日
主要内容
• 汇编语言程序格式
• 汇编语言程序的上机过程 • 循环与分支程序
• 子程序
• 字符(串)的输入输出 • 字符串的处理
汇编语言程序组成
编辑程序
汇编程序的功能
.asm文件
• 在计算机上编写运行汇编语言程序的步骤
data_seg1 segment … data_seg1 ends data_seg2 segment … data_seg2 ends code_seg segment assume cs:code_seg, ds:data_seg1, es:data_seg2 start: mov ax, data_seg1 mov ds, ax mov ax, data_seg2 mov es, ax … code_seg ends end start
• 用编辑程序编写.asm源文件 • 用汇编程序把.asm文件转换成.obj文件 • 用连接程序把.obj文件转换成.exe文件 • 运行.exe文件 • 汇编程序的功能 • 检查源程序 • 查出源程序中的语法错误,给出出错信息 • 产生源程序的目标程序,并给出列表文件(汇 编语言和机器语言对照文件) • 展开宏指令
汇编程序 MASM
.obj文件
连接程序 LINK
.exe文件
伪操作
• 汇编语言程序的组成
• 指令
• 可执行程序运行时由CPU执行的操作
• 伪操作(伪指令)
• 在对源程序进行汇编期间由汇编程序处理的操作
• 宏指令
• 一段具有独立功能的程序代码
段定义伪操作
• 完整的段定义伪操作格式
• 说明段的名字 segment name SEGMENT • 对于数据段、附加段、堆栈段来说, … 这里放存储单元的定义、分配 segment name ENDS • 对于代码段来说,则是指令和伪操作 • 明确段与段寄存器的关系 ASSUME assignment, …, assignment assignment的格式: segment register name : segment name
• 执行后,字符串存放在缓冲区第三个字节开始的区域; 字符串的实际长度存放在缓冲区的第二个字节
data segment maxlen db 32 actlen db ? buffer db 32 dup(?) data ends prognam segment main proc far assume cs:prognam, ds:data start: push ds sub ax, ax push ax mov dl, 0dh ;回车
• 可以分配内存空间而不存入确定的数值,形成未初始化数据
• 类似于C语言的int number; 只定义变量不进行初始化
• 格式 • 变量名字 数据类型 操作数, …, 操作数 • 例4.7 • DATA_BYTE DB 10, 4, 10H • DATA_WORD DW 100, 100H, -5 • MESSAGE DB ‘HELLO’ • DB ‘AB’ • DW ‘AB’ • ABC DB 0, ?, ?, ?, 52, ? • ARRAY DB 100 DUP(?)
程序的基本结构 - 3
prognam segment main proc far assume cs:prognam start: push ds sub ax, ax push ax …… ret main endp subproc proc near ; push相关的寄存器 …… ; pop相关的寄存器 ret subproc ends prognam ends end start
字符串的输入
1. 定义缓冲区
• 第一个字节记录可输入的字符串的最大长度 • 第二个字节不作初始化,将存放输入的字符串的实际长度 • 从第三个字节开始存放字符串,不作初始化
2. lea dx, 缓冲区 字节有效地址) 3. mov ah, 0ah 4. int 21h
; ds:dx = 缓冲区首地址(dx=缓冲区首 ; AH = A (查看教材471页) ; DOS系统功能调用
prtnum endp prognam ends end start
字符、字符串的输入输出
单字符的输入(带回显)
1. mov ah, 1
2. int 21h
; AH = 1 (查看教材471页)
; DOS系统功能调用
• 执行后,al = 输入字符的ASCII码
mov ah, 1 int 21h cmp al, 61h jge stob add al, 20h jmp output stob: sub al, 20h output: mov dl, al mov ah, 2h int 21h
mov bx, cx call prtnum
pop si pop dx
transit: cmp bx, 0 je print
pop cx
pop bx pop ax
mov dl, 20h mov ah, 2 int 21h
mov ax, bx mov dx, 0 div cx
ret
push dx add cx, 2 jmp nextodd mov bx, ax inc si jmp transit exit: main endp ret
push ax push bx push cx
print:
pop dx add dl, 30h mov ah, 2h int 21h
push ax
mov cx, 1 nextodd: cmp cx, 100
push dx push si
dec si
jnz print
jge exit
mov si, 0 mov cx, 10
程序实例
循环与分支程序 - 输出字符0~9
• 学习简单循环的写法
• 初始化循环的各个变量
• 循环次数 = 10 • 当前字符 = ‘0’
• 循环体
• • • • 输出当前字符 当前字符 = 当前字符 + 1 循环次数 = 循环次数-1 判断以上结果是否为0,若是,则结束循环
prognam segment
; 当前数值与10比大小 ; 若 当前数值>=10,则 跳出循环
; 将当前数值转为数字的ASCII码,结果放在dl中 ; 输出当前字符 ; dl = 空格 ; 输出空格 ; 当前数值 = 当前数值+2,即当前数值赋值为下一个要输出的奇数 ; 跳转到printit,继续循环
循环与分支程序 - 按十进制输出数据
ret
main
endp
prognam ends lea bx, buffer mov cl, actlen end start
main endp
subproc proc near ; push相关的寄存器 …… ; pop相关的寄存器 ret subproc ends prognam ends end start
汇编语言程序的上机过程
汇编语言程序上机过程
1. 编辑源程序,保存为.asm文件,放在masm615目录下
2. masm .asm文件,生成.obj文件 (例 masm output.asm) 3. link .obj文件,生成.exe文件 (例 link output.obj) 中间都回车 4. 执行.exe文件
; 输出当前字符 ; 当前字符=当前字符+1 ; 循环次数=循环次数-1 ; 如果循环次数!=0, 则跳到printit
循环与分支程序 - 输出10以内的所有奇数
prognam segment main proc far assume cs:prognam start: push ds sub ax, ax push ax mov ch, 1 printit: cmp ch, 10 jge exit mov dl, ch add dl, 30h mov ah, 2 int 21h mov dl, 20h mov ah, 2 int 21h add ch, 2 jmp printit exit: ret main endp prognam ends end start ; 当前数值=1,因为要输出的第一个奇数是1
程序的开始和结束伪操作
• 表示源程序结束的伪操作
• END label (label表示程序的起始地址,一般只有主 程序需要使用label) •如 start: … end start
数据定义伪操作
• 作用 • 可以将数据存入内存单元,形成初始化数据
• 类似于C语言的int number=10; 变量定义和初始化
例4.1
data_seg1 segment … data_seg1 ends data_seg2 segment … data_seg2 ends code_seg segment assume cs:code_seg, ds:data_seg1, es:data_seg2

code_seg ends
print:
mov dl, [bx] mov ah, 2h int 21h inc bx dec cl jnz print
mov ah, 2h
int 21h mov dl, 0ah ;换行
mov ax, data mov ds, ax
mov ah, 2 int 21h
lea dx, maxlen
mov ah, 0ah int 21h
子程序 - 输出100以内的奇数
• 从1开始,调用输出多位数的子程序进行输出
• 步长为2,找到下一次要输出的奇数 • 直到要输出的奇数>=100
prognam segment main proc far assume cs:prognam start: push ds sub ax, ax
相关文档
最新文档