汇编语言程序设计复习

合集下载

汇编语言程序设计》总复习

汇编语言程序设计》总复习

• 段间寻址
段间直接寻址 段间间接寻址
JMP FAR PTR NEXT JMP DWORD PTR [ BX ]
2. 8086的指令系统
数据传送指令
算术指令 逻辑指令 串处理指令 控制转移指令 处理机控制指令
重点关注! • 指令的汇编格式 • 指令的基本功能
• 指令支持的寻址方式
条件转移指令
JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、
JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、
JLE / JNLE、 JCXZ

循环指令
LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE

子程序调用和返回指令
无符号整数的表数范围: 0 N 2n-1
补码的加法和减法:
求补运算 :对一个二进制数按位求反、末位加一 [X]补码 [-X]补码 [X]补码 加法规则:[X+Y]补码 = [X]补码 + [Y]补码 减法规则:[X-Y]补码 = [X]补码 + [-Y]补码 补码减法可转换为补码加法 例:
第一章
熟练掌握: 数值数据在计算机内部的各种表示,二 进制、八进制和十六进制之间的转换方 法。 基本数据类型(字节、字、双字等)在汇编 语言中的符号表示形式,它们计算机内 部的存储形式以及符号扩展的含义。
重要知识点
数制 数制之间的转换 运算 数和字符的表示
1. 数 制

二进制
0 的表示不唯一
补码表示法:
正数的补码: 同原码 负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一

《汇编语言程序设计》期末复习 (1)

《汇编语言程序设计》期末复习 (1)

第2章 80x86微处理器
1. 基本结构寄存器的名称、位长和作用
(1)通用寄存器: • 32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP • 16位:AX、BX、CX、DX、SI、DI、BP、SP • 8位:AL、AH、BL、BH、CL、CH、DL、DH
(2)段寄存器:CS、SS、DS、ES、FS、GS (3)指令指针寄存器:EIP、IP (4)标志寄存器:FLAGS
① 用方式选择伪指令说明执行该程序的微处理器类型; ② 用段定义语句定义每一个逻辑段; ③ 用过程定义语句定义每一个子程序; ④ 用ASSUME语句说明段约定; ⑤ 用汇编结束语句说明源程序结束; ⑥ 程序在完成预定功能之后,应能安全返回操作系统
2. 汇编语言源程序的编程格式
• EXE和COM格式 3. 系统功能调用 • 调用模式
• SHL, SAL, SHR, SAR, ROL, ROR, RCL, RCR
• 转移和调用指令(表3.8、3.9和3.10及CALL、RET、LOOP)
• 串传送指令:MOVSB、MOVSW、MOVSD及REP前缀
• 处理机控制指令
第4章 汇编语言程序设计
1. 一个完整的汇编语言源程序在结构上包括:
解:∵ (+75)补=0100,1011B
(-6)补=1111,1010B
∴ (+75)+(-6) = (+75)补+ (-6)补
= 0100,1011B
+ 1111,1010B
=1,0100,0101B
∴运算结果为0100,0101B,且OF=0
∴结果不溢出
5. 熟记0~9、A~F、回车符、换行符的ASCII码 6. 微型计算机机的硬件结构

(完整版)汇编语言复习题

(完整版)汇编语言复习题

汇编语言程序设计复习题一、单项选择题1.假设(AL)=0FFH依次执行ADD AL,0FH指令后,标志位ZF和SF的状态分别为(A )A. 0和0B. 0和1C. 1和0D. 1和12.假设V AR为变量,指令MOV BX,V AR 的寻址方式是( A )A.直接寻址B.间接寻址C.立即寻址D.存储器寻址3.下列指令中,不影响标志位的是( C )A.SUB BX,BX B.ROR AL,1 C.JNC Lable D.AND AL,CL4.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=0AAH,试问执行指令MOV BX,[DI]后,(BX)= ( C )A.0100H B.55AAHC.AA55H D.4100H5.执行下列哪一条指令后,就能用条件转移指令判断AL和BL寄存器中的最高位是否相同?(D )A. TEST AL BLB. CMP AL BLC. AND AL BLD. XOR AL BL 6.堆栈中当前出栈的存储单元地址是(A )A. SS*10H+SPB. SS*10H+BPC. SS*10+SPD. SS*10+BP7.已知V AR DW l,2,$+2,5,6 若汇编时V AR分配的偏移地址是0010H,则汇编后0014H单元的内容是( D )A.6H B.14H C.5H D.16H8.循环控制指令REPNZ继续执行循环的条件是(B )A. CX≠0且ZF=1B. CX≠0且ZF=0C. CX≠0或ZF=1D. CX≠0或ZF=09.设NUM=11011011B,指令“MOV AL,NUM SHL 3”执行后AL中的值是(B )A.11011011000BB.11011000BC.00011011BD.00011011011B10.下面XCHG指令语句中,语法正确的是(B)A. XCHG AX,DSB. XCHG BL,[BX]C. XCHG AL,OFHD. XCHG [SI],[DI]11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是( A )A。

汇编语言程序设计

汇编语言程序设计

汇编语言程序设计复习资料1、(单选、2.5分)汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法________。

A、名字的第一个字符可以是大写英文字母及小写英文字母B、名字的第一个字符可以是字母、数字及、@、_C、名字的有效长度≤31 个字符D、在名字中不允许出现$参考答案:B2、(单选、2.5分)当程序顺序执行时,每取一条指令语句,IP 指针增加的值是__________。

A、1B、2C、3D、由指令长度决定的参考答案:D3、(单选、2.5分)下列属于合法的指令是_________。

A、MOV DS,ESB、MOV [SI],[DI]C、MOV AX,BLD、MOV [DI],BL参考答案:D4、(单选、2.5分)下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是________。

A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS 参考答案:B5、(单选、2.5分)下列传送指令中有语法错误的是_________。

A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX参考答案:A6、(单选、2.5分)与MOV BX,OFFSET VAR 指令完全等效的指令是_________。

A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR参考答案:D7、(单选、2.5分)在汇编语言程序中,对END 语句的叙述正确的是________。

A、END 语句是一可执行语句B、END 语句表示源程序到此结束C、END 语句表示程序执行到此结束D、END 语句在汇编后要产生机器码参考答案:C将DX 的内容除以2,正确的指令是_________。

A、DIV 2B、DIV DX,2C、SAR DX,1D、SHL DX,1参考答案:C9、(单选、2.5分)下列数值表达式和地址表达式中,错误的是_________。

汇编语言程序设计复习提纲

汇编语言程序设计复习提纲

汇编语言程序设计复习提纲一、题型1、选择题(10题、10分)2、填空题(9题、14分)3、写寻址方式题(5题、10分)4、程序分析题(5题、34分)5、解析题(2题、12分)6、编程题(2题、20分)二、考试范围和时间1—7章,100分钟第一章汇编语言基础知识考点1 数制与基数之间的转换要求:正确的方式表示各个进制数掌握二进制、十进制、十六进制码之间的相互转换的方法。

考点2 上机操作知识要求:掌握各种debug命令的含义:a、g、e、u、d、t、r、q第二章内部结构和寻址方式考点1 7种寻址方式要求掌握并判断8086的7种寻址方式如:ADD BX, [1000H]LDS DI,[SI+1009H]注意:▪有效地址由哪个寄存器指出,要特别注意隐含使用的段寄存器考点2 标志位在指令中的应用要求▪掌握各标志位的含义:CF、PF、AF、ZF、SF、OF、DF▪判断执行特定指令后标志位的状态如:ADD AL,BLINC AL注意:▪ INC、DEC指令不影响CF▪所有双操作数逻辑指令均设CF=OF=0,根据结构设置SF、ZF、PF的状态,对AF无定义▪NOT不影响任何标志位第三章汇编语言程序格式考点1 运算符数值运算符①算术运算符:+、-、*、/、MOD、SHL、SHR 例:MOV AH , 3*4+5 ;MOV AH, 17 ②逻辑运算符:AND、OR、XOR、NOT例:AND AL, 03H AND 05H ;AND AL, 01H③关系运算符:EQ ( 相等)、NE ( 不等)、LT ( 小于Less )、GT ( 大于)、LE ( 小于或等于) GE( 大于或等于Greater or Equal )例:MOV AX ,1234H LT 1024H ;MOV AX,0 考点2 操作符数值回送型操作符①SEG —取段基址操作符▪功能:汇编程序将回送变量或标号的段地址值。

▪例:MOV AX,SEG BUF②OFFSET—取偏移地址操作符▪功能:汇编程序将回送变量或标号的偏移地址值。

汇编复习提纲

汇编复习提纲

《汇编语言程序设计》复习提纲第1章基础知识(填空)1.各个进制之间的转换。

例如(123)10=( )2=( )8 (37A.B)16=( )1020.8125=( )2= ( )16 2.原码、补码及反码假设[X]补=00A7H, 则X= ( 00a7 )HY = -50,则Y的16比特补码=( )2已知[Z]补=A53BH,则[Z]原=( )H 3.已知[X]补=7985H, [Y]补=5035H,则[X+Y]补=( )H,是否有进位和溢出?4.16位有符号数A09BH与90A1H谁大谁小?如果两数相减CF及OF值为多少?5.16位无符号数A09BH与70A1H谁大谁小?如果两数相减CF及OF值为多少?第2章80X86计算机组织(填空、选择、简答)1.计算机系统的硬件组成:5个部分。

2.根据总线的用途,分为哪三种。

3.80486的寄存器分为哪4类。

其中基本结构寄存器的通用寄存器有哪些?段寄存器有哪些?4.在实模式下,80x86存储系统可以寻址物理存储空间1MB,且段地址16位,段内偏移地址(有效地址)16位。

20位的内存物理地址=段地址*16+偏移地址。

多个逻辑地址可以对应同一个物理地址。

逻辑地址由段地址和物理地址组成。

例如1234H:0005H,1200H:345H,1234H:0005H 都表示同一个物理地址12345H。

代码段、数据段等的地址空间可以相同,也可以重叠。

5.在保护模式下,80486存储系统可以寻址物理存储空间4GB, 80286存储系统可寻址16MB。

在保护模式下80486可以访问214个段,每个段长度达4GB,故总虚拟地址空间246B。

在保护模式下80286可以访问214个段,每个段长度达64KB,故总虚拟地址空间230B。

6.80X86的I/O地址空间与存储空间独立编址。

I/O空间可以达216B。

7.保护模式下,保护级别有4级,操作系统运行在第0级。

注意:保护模式的两条特权规则。

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

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

《汇编语言程序设计》期末复习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.把若干个模块连接起来成为可执行文件的系统程序称为( )。

汇编语言程序设计复习.doc

汇编语言程序设计复习.doc
第三章80x86的指令系统和寻址方式
与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。
重复前缀指令REP的重复次数由计数寄存器Count Reg决定。
在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是
(Count Reg)=0或ZF=0
条件转移指令的转移范围?(只能做段内的短转移)
转移指令JMP NEAR PTR PROCA的转移范围是8000H~7FFFH。
当标志位CF=1时表示无符号数运算产生溢出,而当标志位OF=1是表示带符号数运算产生溢出。
eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。
已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。
如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)=0235H,(DS)=0E60H.

汇编语言程序设计复习题答案

汇编语言程序设计复习题答案

《汇编语言程序设计》复习题一、填空题1、8086CPU内部结构按功能分为两部分,即 BU(执行部件)和 BIU(总线接口部件)。

2、CPU中的总线接口部件BIU,根据执行部件EU的要求,完成CPU与主存储器或I/0端口之间的数据传送。

3、8086中的BIU由四个 16 位段寄存器、一个 16 位指令指针、 6 字节指令队列、 20 位地址加法器和总线控制电路组成。

4、8086/8088的执行部件EU由 8 个通用寄存器、 1 个专用寄存器、一个标志寄存器和 ALU 等构成。

5、根据功能不同,8086的标志位可分为状态标志和控制标志。

6、8086/8088构成的微机中,每个主存单元对应两种地址:段基值和偏移量。

7、8086CPU具有 20 根地址线,直接寻址能力可达 1M 。

8、逻辑地址由段基值和偏移量组成,其中的段基值是由段寄存器存储。

9、计算机的指令由操作码和地址码两部分组成。

10. 零地址指令是不带地址码的机器指令,其操作数是由隐含指定提供的。

11. 8088CPU中共有 14 个寄存器,这些寄存器为 16 位。

12. F标志寄存器共有9个标志位,除OF、SF、AF和CF外,还有 DF 、 IF 、 TF 、▁ ZF 和 PF ,其中用于记录是否产生进位的标志位是 CF 。

13. 标号和变量所具有的三种属性分别为段属性、偏移量属性和类型属性。

14. 操作数有三种类型,分别为常数操作数、寄存器操作数和存储器操作数。

15. 一个源程序中可以包含代码段、数据段堆栈段及附加段。

其中代码段是源程序中必不可少的,其它的段可有可无。

16. SEGMENT/ENDS称为段定义伪指令;ASSUME称为段寻址伪指令;NAME/END称为模块定义伪指令;源程序结束伪指令为 END ;过程定义伪指令为 PROC/ENDP 。

数据定义伪指令为 DB 、 DW 、DD 。

17. 一般DOS系统功能调用的步骤为:(1) 送入口参数到指定寄存器;(2)送功能号至AH ;(3)软中断指令INT 。

《汇编语言程序设计》期末复习题百度文库

《汇编语言程序设计》期末复习题百度文库

《汇编语言程序设计》期末复习题百度文库第一章:汇编语言基础知识概述在开始复习《汇编语言程序设计》之前,我们先来回顾一下汇编语言的基础知识。

1.1 汇编语言的定义和作用汇编语言是一种低级语言,可以直接操作计算机硬件,并且具有较高的执行效率。

它是机器语言的可读性表示,通过一系列指令来实现计算机的基本操作。

汇编语言在计算机系统中发挥着重要的作用,特别适合于编写底层程序和对性能要求较高的应用。

1.2 汇编语言的特点与高级语言相比,汇编语言具有以下特点:- 与硬件相关:汇编语言直接操作计算机硬件,可以实现对寄存器、内存及其他硬件资源的直接访问。

- 相对繁琐:由于直接操作硬件,所以汇编指令的书写比较繁琐,需要对计算机硬件有深入的了解。

- 执行效率高:汇编语言编写的程序执行效率高,能够充分发挥计算机硬件的性能。

1.3 汇编语言的基本概念在学习汇编语言时,需要了解以下基本概念:- 寄存器:汇编语言使用寄存器来存储数据和进行计算,常用的寄存器有通用寄存器和特殊寄存器等。

- 指令:汇编语言通过一系列指令来实现计算机的基本操作,如MOV、ADD、SUB等。

- 内存:汇编语言中使用内存来存储程序和数据,在编写程序时需要合理地管理内存。

- 标志位:用于记录计算过程中的状态信息,可以用于控制程序的执行流程。

第二章:汇编语言程序设计实践2.1 环境准备在进行汇编语言程序设计之前,需要正确配置环境,并安装相应的汇编语言开发工具。

一般来说,常用的汇编语言开发工具有MASM、NASM等。

2.2 汇编语言程序的编写编写汇编语言程序需要按照特定的格式和规范进行,一般包括以下几个步骤:- 定义程序入口:使用`start`指令定义程序的入口点。

- 导入库文件:将需要调用的库文件导入到程序中。

- 定义数据段:使用`data`关键字定义数据段,存放程序中用到的数据。

- 定义代码段:使用`code`关键字定义代码段,存放程序的主体逻辑。

- 定义子程序:可以将一些常用的代码逻辑封装成子程序,便于复用。

汇编语言程序设计复习题

汇编语言程序设计复习题

汇编语言程序设计复习题汇编语言程序设计复习题汇编语言是一种低级语言,它直接操作计算机的硬件,具有高效性和灵活性。

在计算机科学和工程领域,汇编语言程序设计是一门重要的课程。

下面将给出一些汇编语言程序设计的复习题,帮助读者巩固和加深对该领域的理解。

1. 请写出一段汇编语言代码,实现将一个字节的数据存储到内存地址0x100处。

答案:```assemblyMOV [0x100], AL```2. 请写出一段汇编语言代码,实现将寄存器AX中的值加1。

答案:```assemblyINC AX```3. 请写出一段汇编语言代码,实现将两个寄存器BX和CX中的值相加,并将结果存储到寄存器DX中。

答案:```assemblyADD DX, BXADD DX, CX```4. 请写出一段汇编语言代码,实现将一个字节的数据从内存地址0x200处读取,并存储到寄存器AL中。

答案:```assemblyMOV AL, [0x200]```5. 请写出一段汇编语言代码,实现将寄存器AX中的值存储到内存地址0x300处。

答案:```assemblyMOV [0x300], AX```6. 请写出一段汇编语言代码,实现将寄存器AX中的值与寄存器BX中的值比较,并根据比较结果设置标志位。

答案:```assemblyCMP AX, BX```7. 请写出一段汇编语言代码,实现将两个寄存器CX和DX中的值相乘,并将结果存储到寄存器AX中。

答案:```assemblyMUL CX, DX```8. 请写出一段汇编语言代码,实现将两个寄存器BX和CX中的值相减,并将结果存储到寄存器AX中。

答案:```assemblySUB AX, BXSUB AX, CX```9. 请写出一段汇编语言代码,实现将一个字节的数据从内存地址0x400处读取,并存储到寄存器AL中,然后将AL中的值移位1位,最后将结果存储到内存地址0x500处。

答案:```assemblyMOV AL, [0x400]SHL AL, 1MOV [0x500], AL```10. 请写出一段汇编语言代码,实现将寄存器AX中的值与寄存器BX中的值相除,并将商存储到寄存器DX中,余数存储到寄存器AX中。

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

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

汇编语言程序设计》期末复习题及答案一、选择( 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=186io, B=273s, C=0B^,把这三个数看成无符号数,则它们之间的关系是(D )D、 A<B=C6. 用一条指令实现寄存器 BX和SI的内容相加,并将结果送入AX中,这条指令是(D )D、LEA AX, [BX][SI]7 .要从端口 1234H中读入8位数据,其指令应是( C )C、MOV DX, 1234HIN AL , DX&循环控制指令 LOOPNZ/LOOPNE续执行循环的条件是(B )B、CX^ 0 且 ZF=09. 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,执行“ SAR 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=Q (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, BLB、寄存器间接寻址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中。

汇编语言程序设计复习

汇编语言程序设计复习

四、分析题
• • • • • • • • • • • • • • • • • • 4、下面程序的功能是将键盘输入的小写字母用大写字母显示出来。请将程序补充完 整。(每空2分,共10分) CODE SEGMENT (1) ASSUME CS:CODE START: MOV AH,1 (2)int 21h CMP AL,‘a’ JL EXIT CMP AL, ‘z’ JG EXIT SUB (3)AL,20H MOV DL,AL MOV AH,2H INT 21H JMP START EXIT: (4)mov ah,4cH INT 21H CODE ENDS (5)END
三、简答题 1、以TABLE为首地址的数据区中要存放以下次序的数据: ‘A’、‘B’、0、0、‘C’、‘D’、0、0,请分别用DB和 DW语句实现。 TABLE DB ‘AB’,0,0,’CD’,0,0 TABLE DW ‘BA’,0,’DC’,0 2、指出下列指令中源操作数的寻址方式是什么? (1)MOV AX,5 立即数 (2)MOV AX,BX 寄存器 (3)MOV AX,[BP] 寄存器间接寻址 (4)MOV AX,VAL[BX][SI] 相对基址变址寻址
举例: 举例: 一、填空题 1、47的十六进制数是 2F 2、用 cs 寄存器和 ip ,二进制数 01000111 。 寄存器可确定下一条指令的物理地址。
二、选择题 1、8086系统的存储器,存储单元的物理地址是( c )位。 A.16 B. 8 C.20 D. 32 2、下列指令中有错误的是( d )。 A、P D、SHR AX,8
7、8、 9 、 、 、 (1)、分支、循环、子程序设计方法; 子程序设计方法; 、分支、 (2)、常见程序设计问题: 、常见程序设计问题: 数据范围判断( ),统计字符个数 数据范围判断(0~9、A~Z、a~z),统计字符个数; 、 、 ),统计字符个数; 求最小最大值; 求最小最大值;

《汇编语言程序设计》复习资料

《汇编语言程序设计》复习资料

《汇编语言程序设计》复习资料一、基本概念1、8088/8086CPU内部寄存器有__14____个,其中的AX、BX、CX、DX是通用寄存器,SP、BP、DI、SI 是基址和变址寄存器,CS、DS、ES、SS、是段寄存器,此外还有指令指针寄存器 IP 和标志位寄存器 FLAGS 两个控制寄存器,所有寄存器都是 16 _位寄存器,每个寄存器可以存放 16 位二进制数。

2、8088/8086CPU的标志位寄存器中有9个标志位,其中的DF、IF、TF是控制标志,OF、SF、ZF、CF、AF、PF 是状态标志。

3、8088/8086CPU有三组总线,它们是数据总线、控制总线和地址总线;地址总线是 20 条,因此它可以寻址的范围是 1M 字节。

通常将 1024 字节称为1K,将 1024K 字节称为1M。

4、8088/8086CPU的存储器采用分段方式管理,每个段最多可以有 64K 字节,全部存储空间可以分成 16 个大小为64K且互相不重叠的段。

5、采用分段方式管理的存储单元的地址分成物理地址和逻辑地址两种,逻辑地址由段地址和偏移地址两部分构成,段地址是每个存储器段的起始地址;偏移地址则是相对于每个段第一个存储单元的偏移值。

段地址存放在段寄存器中,由于8088/8086CPU的段寄存器是16位寄存器,因此在段寄存器中存放的是段地址的 16 位;而CPU对数据的存取是按物理地址进行的,物理地址和逻辑地址间的关系是__ 物理地址=段地址 16D(或10H)+ 偏移地址___。

6、存储器中,数据是以字节为单位存放的,它是一个 8位二进制数,16位二进制数是 2个字节,又称为字;每个存储单元可以存放一个字节;一个字则占用两个存储单元,存放时要将低字节放在地址较小的存储单元中。

7、计算机的指令由操作码字段和操作数字段构成,它们分别给出计算机所要执行的操作和执行操作所要的操作数。

8、指令操作数通常可以存放在指令中,也可以存放在CPU的寄存器中,大多数存放在存储器中,它们分别称为立即数、寄存器操作数和存储器操作数。

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

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

《汇编语言程序设计》课程期末复习提要第一章数据格式及其转换内容提要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)正负数的补码表示,掌握计算机中数和字符的表示;假设机器字长度为8位,[+3]补码=B,[-3]补码=H。

十六进制数0f8h表示的十进制正数为,表示的十进制负数为。

当8位二进制数被视为有符号补码整数时,其最小值为,最大值为。

计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。

目前,微机中普遍采用的是码,称为美国码。

第二章80x86计算机组织(1)中央处理器的CPU和80x86寄存器组的组成。

关键点:特殊寄存器、段寄存器,例如:IP寄存器中存储了什么?标志寄存器中有几个条件状态位和几个控制状态位。

这两种类型的标志寄存器是什么?哪个标志位用于控制CPU是否响应可屏蔽中断请求。

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

(2)存储单元的地址和内容、内存地址的分段、逻辑地址和物理地址的实模式表示。

eg.如果ss=6000h,说明堆栈段起始物理地址是________。

假设字节(00018h)=14h,字节(00017h)=20h,则单词(00017h)为___。

如果数据段中存储单元的物理地址为3f756h,(DS)=3f00h,则在使用DS段寄存器指示单元的段基值时,正确访问该单元需要哪个偏移量。

第三章80x86的指令系统和寻址方式与数据相关的寻址模式(即时寻址模式、寄存器寻址模式、直接寻址模式、寄存器间接寻址模式、寄存器相对寻址模式、基索引寻址模式、相对基索引寻址模式)以及与传输地址相关的寻址模式(段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址)。

数据传输指令(通用数据传输指令、累加器专用传输指令)、算术指令(加法指令、减法指令(*加法和减法指令对四个标志位[of、CF、SF、ZF]的影响),乘法指令(*乘法指令的要求:目标操作数必须是累加器)除法指令(*除数在累加器中,执行除法指令后,商和余数?)逻辑指令(逻辑操作指令(*XOR,and,or,测试指令和指令执行对标志位的影响)、移位指令),字符串处理指令(使用rep的MOV、STOs、LODs指令、使用rep/repz和repne/repnz的CMP和SCA指令)控制传输指令(无条件传输指令、条件传输指令、循环指令、子例程、中断)。

汇编语言程序设计复习

汇编语言程序设计复习

2
第一章 基础知识
重要知识点: ①不同进制之间转换 ②补码表示法

3
第二章 80x86计算机组织
重要知识点: ①熟练掌握INTEL80X86微处理器的结构 ②掌握内存单元地址与内容的含义和关系 ③了解计算机接口的构成


25
• 2、DA1数据区中有 个字节数据,下面程序段将每个数 、 数据区中有50个字节数据 数据区中有 个字节数据, 据的低四位变反,高四位不变,并依次存入DA2数据区中。 数据区中。 据的低四位变反,高四位不变,并依次存入 数据区中 请将程序补充完整。 请将程序补充完整。 • MOV CX,50 , • LEA SI,DA1 , • LEA DI,DA2 , • K1:MOV AL,[SI] : , • ___________ (1)XOR AL,0FH ) , • MOV [DI],AL , • INC SI (2)JNZ K1 ) • INC DI • DEC CX • ___________
17
• 2. 如TABLE为数据段中 为数据段中0100单元的符号名,其中存放的 单元的符号名, 为数据段中 单元的符号名 内容为0FF00H,试问以下两条指令有什么区别 指令执行 内容为 ,试问以下两条指令有什么区别?指令执行 寄存器的内容是什么? 后,AX寄存器的内容是什么 寄存器的内容是什么 • MOV AX,TABLE , • MOV AX,OFFSET TABLE , • 3. 对于下面的数据定义,三条 对于下面的数据定义,三条MOV指令分别汇编成什么 指令分别汇编成什么? 指令分别汇编成什么 (3分) 分 2. 第一条指令传送的是 第一条指令传送的是0100H单元 单元 • TAB1 DW 10 DUP(?) ( ) 中的内容 AX=0FF00H • TAB2 DB 10 DUP(?) ( ) 第二条指令传送的是地址0100H 第二条指令传送的是地址 • TAB3 DB ‘1234’ AX=0100H • ┇ , • MOV AX,LENGTH TAB1 3. MOV AX,10 , MOV BL,10 , • MOV BL,LENGTH TAB2 , , • MOV CL,LENGTH TAB3 MOV CL,1 ,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。

十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。

8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。

第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。

(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。

存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。

eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。

已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。

如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。

数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。

eg.【习题3.8】假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1) MOV AX, 0ABH (2) MOV AX, BX(3) MOV AX, [100H] (4) MOV AX, VAL(5) MOV AX, [BX] (6) MOV AX, ES:[BX](7) MOV AX, [BP] (8) MOV AX, [SI](9) MOV AX, [BX+10] (10) MOV AX, VAL[BX](11) MOV AX, [BX][SI] (12) MOV AX, VAL[BX][SI]假定(DS)= 1000H, (SS)= 2000H,(SI)= 3000H,(BX)= 0100H,(BP)= 0200H,数据段中变量名为OVAR的偏移地址值为0050H,请指出下列源操作数的寻址方式是什么?其物理地址值是多少?1. MOV DX, [1000H]2. MOB DX, [BX]3. MOV DX, OVAR[BP]4. MOV DX, [BX+SI]5. MOV DX, OVAR[BX][SI]如果JMP指令采用段间间接寻址,那么转移地址存放在4个相邻字节单元中,其中前两个字节存放的是偏移地址,而后两个字节存放的是段地址。

设SP=4AH,执行段内返回指令RET 4后,SP的值是50H 。

重复前缀指令REP的重复次数由计数寄存器Count Reg 决定。

在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(Count Reg)=0 或 ZF=0条件转移指令的转移范围?(只能做段内的短转移)转移指令JMP NEAR PTR PROCA的转移范围是8000H~7FFFH 。

当标志位 CF =1时表示无符号数运算产生溢出,而当标志位 OF =1是表示带符号数运算产生溢出。

计算机系统通过和外部设备通信。

循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是_ZF=0且(Count Reg)不等于0_______。

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

(教材Page320,page335)阅读下面的程序片段,并分析执行结果。

MOV AX,723AHMOV BX,0C86BHSUB AL,BLSBB AH,BHXOR AL,01HADC AX,0执行该程序片段后:(AX)= 0A9CEH ,CF = 0 ,OF = 0 。

第四章汇编语言程序格式伪操作:数据定义及存储器分配伪操作,表达式赋值伪操作EQU,段定义伪操作、程序开始和结束伪操作、对准伪操作、基数控制伪操作。

汇编语言程序格式:汇编语言源程序中的每个语句的组成格式:名字项、操作项(包括?)、操作数项和注释项eg.1.在某数据段内定义变量BUFFER DB 30 DUP (20)表达式 TYPE BUFFER的值为 1 。

2.BUFl DB 3 DUP(0,2 DUP(1,2),3)COUNT EQU $-BUFl变量COUNT的值是 18 。

3.DATA SEGMENTDB 2EH DUP(0)VAR1 DB 12H,34HVAR2 DB 10H DUP(O)ADR1 DW VAR1,VAR2DATA ENDS为使ADR1+2字存储单元中内容为0030H,横线上应选用的语句是_ORG$+30H____。

4.BUF DW 4,6,$+2,若汇编时BUF分配的偏移地址是0042H,则汇编后BUF数组中第三个字的值是 0048H 。

5.设某数据段:DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB‘COMPUTER’DB 0AH,0DHCOUNT EQU $-DA1DA2 DW ‘CO’,’MP’,’UT ,’ER’DATA ENDS请回答:(1)DA1的偏移地址是: 0020H 。

(2)COUNT的值是 10 。

(3)DA2+5字节单元的内容是‘U’。

6.执行下列指令序列后,AX寄存器中的内容是什么?TABLE DW 10,20,30,40,50ENTRY DW 3……MOV BX, OFFSET TABLEADD BX, ENTRYMOV AX, [BX]7.下面指令执行后,变量DAB中的内容是____0F5H____。

DAW DW 2A05HDAB DB 0FAH:MOV AL,BYTE PRT DAWSUB DAB,AL第五章循环与分支程序设计循环程序结构,分支程序结构eg. BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。

请在空行处各填上一条指令完善该程序。

MOV CX,31HLEA SI,BEGMOV DI,SIADD DI,99DON:MOV AL,[SI]XCHG AL,[DI]MOV [SI],ALINC SIDEC DILOOP DON阅读如下程序段:ADRR DB XXH,XXH, (XX)NUM EQU $-ADRRRETT DB?…MOV CX,NUMMOV BX,-1DON:INC BXCMP ADRR[BX],0LOOPZ DONJNZ NEXTMOV BL,OFFHNEXT:MOV RETT,BLHLT请回答(1)该程序完成的功能是什么?在以ADRR为起始地址的数组中,查找第一个非0数据(2)程序执行后RETT字节单元中的内容是什么?若找到则将第一个非零数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。

阅读如下程序片段,回答所提出的问题,假定X1,X2,…XN为无符号数。

ORG 100HBLOK DW X1,X2, (X)COUNT EQU($-BLOK)/2RESULT DW ?…LEA BX,BLOK-2MOV CX,COUNTXOR AX,AXGOON:ADD BX,2CMP AX,[BX]JAE NEXTMOV AX,[BX]NEXT:LOOP GOONMOV RESULT,AX程序片段执行完后,RESULT字单元的内容=MAX(X1,X2,…Xn) ,(BX)= 100H+2*(COUNT-1) ,程序循环次数=COUNT 。

下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。

请在空白处填写合适的指令。

DATA SEGMENTARRAY DW 23ABH,1570H,567,1765H,46,5210HCOUNT EQU ($-ARRAY)/2DA1 DB ?DA2 DB ?DATA ENDS……LEA SI,ARRAYMOV CX,COUNTLOP1:MOV AX,[SI]TEXT AX,0001HJZ LOP2INC BLJMP LOP3LOP2:INC BHLOP3:ADD SI,2DEC CXJNZ LOP1MOV DA1,BLMOV DA2,BH下列程序片段调用单个字符显示的2号功能显示STRING中的字符串‘COMPUTER’(不显示字符‘$’)。

(调用DOS的2号功能实现)STRING DB‘COMPUTER’,‘$’┇设AX,BX中的数一个为正数,一个为负数,编写程序片段完成将正数送到PLW单元中存放。

编程实现:TEST AX,8000HJE K1或JZ K1MOV PLW,BXJMP DONEK1: MOV PLW,AXDONE:习题5.3,5.231.从键盘输入一个以$为结束符的字符串,统计其中的非数字字符个数。

DSEG SEGMENTBUFF DB 50 DUP (‘ ’)COUNT DW 0DSEG ENDS┇BEGIN: LEA BX, BUFFMOV COUNT, 0INPUT: MOV AH, 01 ;INT 21HMOV [BX], ALINC BXCMP AL, ‘$’ ;JNZ INPUT ;LEA BX, BUFF ;NEXT: MOV CL, [BX]INC BXCMP CL, ‘$’ ;JZ DISPCMP CL, 30H ;JB NEXTCMP CL, 39H ;INC COUNT ;JMP NEXTDISP: ┇ ;2. 试编写一程序段求出双字长数的绝对值。

相关文档
最新文档