微机原理与接口技术复习重点(很有用哦).ppt

上传人:wj 文档编号:9418199 上传时间:2023-05-19 格式:PPT 页数:73 大小:580KB
下载 相关 举报
微机原理与接口技术复习重点(很有用哦).ppt_第1页
第1页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第2页
第2页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第3页
第3页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第4页
第4页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第5页
第5页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第6页
第6页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第7页
第7页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第8页
第8页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第9页
第9页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第10页
第10页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第11页
第11页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第12页
第12页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第13页
第13页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第14页
第14页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第15页
第15页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第16页
第16页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第17页
第17页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第18页
第18页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第19页
第19页 / 共73页
微机原理与接口技术复习重点(很有用哦).ppt_第20页
第20页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术复习重点(很有用哦).ppt

《微机原理与接口技术复习重点(很有用哦).ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术复习重点(很有用哦).ppt(73页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术复习重点(很有用哦).ppt

综合练习题,一、填空题二、分析简答题三、程序分析题四、编程题五、存储器扩展题六、输入输出接口题,一、填空题,在计算机中:

1Byte=8bit,1Word=16bit。

对于十六进制数码64.8H,转换为十进制数时为100.5;该数码看作8421BCD码时表示数据为64.8。

对于十进制数18.5,用十六进制数表示时为12.8H;用压缩8421BCD码表示时为18.5H或(00011000.0101)。

设机器字长为8位,最高位是符号位。

则十进制数127所对应的原码为11111111B,补码为10000001B。

8086CPU内部结构可分为EU和BIU两部分。

8086CPU可以访问8位和16位的寄存器。

8086CPU是16位的CPU。

设SP为2000H,则执行PUSHAX后,SP=1FFEH。

逻辑地址是由段基址和偏移地址组成。

其中,段寄存器中存放的是段基址。

将逻辑地址转换为物理地址的公式是段基址16偏移地址。

设有逻辑地址1234H:

1234H,试写出其对应的物理地址13574H。

一个含有16个字节数据的变量,它的逻辑地址为1000H:

0100H,那么该变量的最后一个字节数据的物理地址是1010FH。

8086CPU对外的数据线是16条,地址线是20条,它的寻址能力为1M字节。

数据线和地址线是以分时复用方式轮流使用的。

若有如下定义:

ORG0100HTABDW9876H当执行:

MOVAX,TAB后,(AX)=9876H;而执行:

LEAAX,TAB后,(AX)=0100H。

若定义ADBabcd,则(A+2)单元存放的字节数据是c或63H。

8086CPU在I/O单独编址时,对I/O编址最多使用16条地址线,若要从地址为80H的端口读入字节数据,则应该使用指令INAL,80H。

在8086系统(XT机)中使用的可编程中断控制器型号是8259A,该芯片最少占用2个端口地址。

可编程定时/计数器8253含有3个16位的定时/计数器。

每个定时/计数器可以通过编程方式来设定的工作方式有6种。

若用4K1的存储器芯片组成12K字节的内存容量,则共需24个这样的芯片。

一般情况下,容量为256KB的存储器具有8条数据线,18条地址线。

在微型计算机系统中,可采用的输入输出方式主要有程序控制、中断方式、DMA三种类型。

可编程接口芯片8255A含有3个8位的I/O口。

A口工作方式有3种,B口工作方式有2种。

8086CPU上电复位后,执行第一条指令的物理地址是FFFF0H。

8086/8088CPU的中断系统能处理256种不同类型的中断。

在8086系统中使用8259A芯片,最多能管理64级中断优先级。

计算机对I/O端口的编址方法有存储器映象寻址(也称统一编址)、I/O单独编址两种。

内存按存储器性质分类通常分为RAM和ROM两类。

二、分析简答题,1、写出-23的原码、反码、补码,并将补码转换成十六进制数(设字长为8位)。

答:

X=-23=-10111BX原码:

10010111BX反码:

11101000BX补码:

11101001B=E9H,2、已知逻辑地址3010H:

1234H,写出段地址、偏移地址、物理地址。

答:

段地址为:

3010H;偏移地址为:

1234H物理地址:

3010H*10H+1234H=31334H3、简述BIU、EU单元作用。

答:

BIU:

地址形成、取指令、指令排队、读/写操作数、总线控制EU:

指令译码、指令执行,4、8086CPU中四个段寄存器的名称是什么,分别用什么符号表示?

答:

代码段:

CS数据段:

DS堆栈段:

SS扩展段:

ES,5、列举至少5种程序状态字中的标志位,并简要说明其功能答:

ZF:

全零标志CF:

进位标志SF:

符号位AF:

辅助进位PF:

奇偶校验位OF:

溢出标志,6、设字长为8位,用二进制计算15+20的结果,并说明对状态标志C、A、S、Z的影响。

答:

00001111+0001010000100011CF=0AF=1SF=0ZF=0,7、8086CPU对1M存储空间是如何组织的?

答:

8086CPU对存储器是采用分段方式管理的(段地址:

偏移量),分为奇地址库和偶地址库。

8、8086CPU系统中存储器为什么分奇地址库和偶地址库。

答:

为保证和以前的CPU兼容,保证8086既能进行字节操作,有可以进行字操作。

9、8086对存储器的管理为什么采用分段的办法?

20位的物理地址是如何形成的?

答:

8086的数据线和内部的寄存器都是16位的,而其地址线是20位的,无法直接进行管理;为扩大寻址范围,采用分段的管理方式,把真正的物理地址用段地址和偏移量表示,每一部分都不超过64K,可保存在内部寄存器中。

当CPU访问内存时,在地址加法器中将段寄存器的内容(段基址)自动左移4位(二进制),再16位偏移地址相加,形成20位的物理地址。

10、设SS=1050H,SP=0008H,AX=1234H,当执行指令:

PUSHAX后,寄存器SS、SP、AX内容分别是什么?

画图说明1234H在内存中的存放情况。

答:

SS=1050HSP=0006HAX=1234H(10506H)=34H(10507H)=12H,11、分别指出下列指令中的源操作数的寻址方式。

(1)MOVCX,300H

(2)MOVBPDI,300H(3)MOVAX,BX(4)MOVAX,BP+DI(5)MOVAX,10BXDI(6)MOVAX,10SI(7)MOVAX,DI(8)JMPBX(9)INAL,23H(10)INAL,DX,

(1)直接寻址

(2)立即寻址(3)寄存器寻址(4)基址加变址(5)相对基址加变址寻址(6)寄存器相对寻址(7)寄存器间接寻址(8)段内间接寻址(9)直接端口寻址(10)间接端口寻址,12、指出下列指令的错误

(1)MOVAH,BX答:

源、目的操作数长度不匹配

(2)ADD15H,BX答:

立即数不能做目的操作数(3)MOVCS,AX答:

CS不能做目的操作数(4)MOVAX,SIDI答:

SI、DI不能同时出现在中(或源操作数寻址方式有误)(5)MOVBYTEPTRBX,1000答:

源、目的操作数长度不匹配,(6)MOVSI,BX答:

源、目的操作数不能均为存储器操作数(7)MOVDS,0200H答:

立即数不能直接送至段寄存器(8)INBL,05H答:

IN指令中目的操作数不能用BL(只能用AL或AX)(9)MOVAX,IP答:

IP不能作操作数(10)MOVSI,DX答:

DX不能间接寻址,可改为MOVSI,BX(11)PUSHAL答:

PUSH指令的操作数必须为16位(即:

按字操作),13、试写一指令序列,完成将AX寄存器的最低4位置1,最高3位清零,D7D9位反相,其它位不变。

答:

ORAX,000FHANDAX,1FFFHXORAX,0380H,14、用单条指令或程序片段,实现下述功能。

(1)将AX高8位取反,低四位置1,其余位不变。

(2)将AL的高四位与低四位互换。

(3)将BX、AX内容互换。

答:

(1)XORAX,0FF00HORAX,000FH

(2)MOVCL,4RORAL,CL(或ROLAL,CL)(3)XCHGAX,BX,15、写出至少3种指令,使AX寄存器清零答:

MOVAX,00SUBAX,AXXORAX,AXANDAX,00H,16、设计I/O接口电路时一般遵循什么原则,为什么?

答:

遵循的基本原则:

输出要锁存,输入要缓冲。

原因:

CPU运行速度较快,外设速度相对较慢,通过锁存器保持CPU的输出信号;CPU的数据线是公用的,任何外设都不能单独占用数据线,通过缓冲器可以将外设和数据线在不需要的时候隔离。

17、计算机使用中断有什么好处?

答:

(1)解决快速CPU与慢速外设之间的矛盾,使CPU可以与外设同时工作,甚至可以与几个外设同时工作。

(2)计算机实现对控制对象的实时处理。

(3)计算机可以对故障自行处理。

18、8086可屏蔽中断请求输入信号线是什么?

“可屏蔽”的涵义是什么?

答:

可屏蔽中断请求输入线为INTR;“可屏蔽”是指该中断请求可经软件清除标志寄存器中IF位而被禁止。

19、简述CPU响应外部可屏蔽中断的前提条件是什么?

答:

有中断源申请、无内部中断、中断系统是开放的20、什么是中断向量,中断向量表在内存中的地址范围是什么?

答:

中断向量是指中断处理程序的入口地址;中断向量表的地址范围:

00000H003FFH,21、什么叫中断向量表,在8086系统中,中断向量表存放在内存的什么位置,容量有多大?

答:

把不同中断类型号对应的中断服务程序入口地址排列起来,形成的表称为中断向量表;存放在存储器最开始的一段空间内;容量为1KB。

22、8086CPU主要能处理哪些类型的中断,这些中断的优先级是如何排列的。

答:

内部中断和外部中断,内部中断包括内部硬中断和内部软中断,外部中断包括可屏蔽和不可屏蔽中断。

中断优先级为:

内部中断不可屏蔽中断可屏蔽中断单步中断,23、编写中断类型号为10的中断向量设置程序(假设中断服务程序名为INT_10),方法一:

MOVAX,0MOVES,AXMOVDI,40MOVAX,OFFSETINT_10CLDSTOSWMOVAX,SEGINT_10STOSW,方法二:

MOVAX,0MOVDS,AXMOVBX,40MOVAX,OFFSETINT_10MOVBX,AXMOVAX,SEGINT_10MOVBX+2,AX,三、程序分析题,1、MOVAL,85HMOVX1,0MOVX2,0MOVCX,8L0:

SHLAL,1JCL1INCX1JMPL2L1:

INCX2L2:

LOOPL0,程序中X1和X2是字节变量,

(1)分析程序实现的功能。

(2)程序执行后,X1和X2的值分别是多少?

答:

(1)统计AL中0和1的个数,分别放在X1和X2中。

(2)X1=5;X2=3,2、INAL,5FH;TESTAL,80H;JZL1;MOVAH,0JMPSTOPL1:

MOVAH,0FHSTOP:

HALT,从地址为5F的端口读入1个字节送ALAL与80H相与,但不回送结果,只影响标志位的值若状态标志Z为1,跳转至L1运行

(1)在横线处写明语句实现的功能。

(2)分析程序实现的功能。

功能:

若从地址为5F的端口外围设备读入的字节最高位为0则AH=0FH,否则AH=0,3、MOVAX,0MOVBX,1MOVCX,100L1:

ADDAX,BXINCBXDECCXJNZL1,

(1)分析程序实现的功能。

(2)程序执行后,AX、BX、CX的值分别是多少?

答:

(1)计算1+2+3+100的值,最终保存在AX中;

(2)AX=5050BX=101CX=0,4、STRDBCOMPUTERMOVCX,8MOVAL,1LEABX,STR;(a)L1:

CMPBYTEPTRBX,U;(b)JZL2INCBXINCALLOOPL1L2:

HALT,

(1)在横线处写明语句实现的功能。

答:

(a)将STR变量的首地址送BX(b)比较BX间接寻址的字节是否等于U

(2)分析程序实现的功能,并说明执行完后,AL寄存器的值。

答:

计算字母U在字符串中出现的位置,AL=5,5、分析填空MOVAX,00H;PUSHAX;POPBX;MOVAX,3F5FH;MOVCX,4RORAL,CL;ANDAL,0FH;,答:

执行后AX=00H执行后AX=00H执行后BX=00H执行后AL=5FH执行后AL=0F5H执行后AL=05H,6、若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。

LEABX,STR;取STR的偏移量放到BX中MOVCX,20;_设置循环次数_LP:

CMPBX,*JNZNEXT;BX所指单元内容不为*,则转移至NEXTMOVBX,$;将BX所指单元用$替代NEXT:

INCBX;BX加1,指向下一个单元LOOPLP;CX-1不等于0则转移至LP处,继续循环HLT程序的功能:

将STR开始的前20个字符中的*用$替代,四、编程题,1、从BLOCK开始有一个字节型数组,共有15个元素,编写完整汇编源程序,计算这个数组中奇数的个数,并将结果存入内存SUM单元。

2、从BUF开始有一个字节型数组,共有100个元素,编写完整汇编源程序,计算这个数组中负数的个数,并将结果存入内存COUNT单元。

3、从BUF开始,存放10个带符号的字节数据,编写完整汇编源程序,找出该数据区中的最大数,并将其存放至内存单元MAX中。

(答案略),1.右图为8088CPU和某存储器电路连接图,请回答以下问题:

(1)将CPU的信号线与存储器相连。

(2)存储器是什么类型(RAM、ROM)?

总容量为多少?

各存储芯片的地址范围分别是多少?

五、存储器扩展题,答:

1)CPU与存储器的连接如右图所示。

2)存储器类型为:

RAM;总容量为4K8;地址范围:

0#2000H-27FFH1#2800H-2FFFH,1、INTEL8255A接口芯片

(1)现给出INTEL8255A的应用电路如下,系统分配给8255的地址为60H63H。

试分析该电路中8255的A、B口分别是作为输入口,还是输出口?

(2)现给出8255A工作方式控制字格式如下,请编写程序片段对8255进行初始化,并读取电路中的开关量,用LED发光二极管显示其对应的开关状态(注:

LED显示器“亮”,表示开关“断开”)。

六、输入输出接口题,解答:

(1)A口作为输入口,B口作为输出口

(2)初始化:

A口作为输入口,B口作为输出口,均工作于方式0,则控制字为:

90H(不唯一)参考程序片段:

MOVAL,90HOUT63H,ALINAL,60HOUT61H,AL,2、根据下面的接口电路图,回答下列问题:

(1)这是一个什么接口电路图?

答:

查询式输入接口电路图

(2)写出下列芯片的名称或功能(锁存、缓冲):

U1:

锁存器U2:

三态缓冲器(或三态门)(3)电路图中的1、2、3、4、应接到何处?

写出符号。

答:

1.2.M/3.地址线A15A04.,Theend!

温馨提示:

考试时请带学生证和重修证!

谢谢!

指令系统程序设计举例,例1:

从存储器中取数的基本方法执行下列指令后,AX寄存器中的内容是什么?

TABLEDW10,20,30,40,50ENTRYDW3.MOVBX,OFFSETTABLE;取数据串偏移地址ADDBX,ENTRY;BX=BX+3MOVAX,BX;物理地址=DS16+(BX)答案:

(AX)=40,此例中要注意:

1)TABLE和ENTRY的标号意义,这里为数据串的偏移地址的首地址。

2)从存储器中取数据必须要知道数据在那个段和它的偏移地址。

3)得到偏移地址有两条指令4)如果数据在ES或SS段时,指令中段前缀的用法,如果数据串定义在ES段中TABLEDW10,20,30,40,50ENTRYDW3.MOVBX,OFFSETTABLE;取数据串偏移地址ADDBX,ESENTRY;BX=BX+3MOVAX,BX;物理地址=ES16+(BX)答案:

(AX)=40,此例中要注意:

1)TABLE和ENTRY的标号在程序中只能出现一次,在段定义中已经指明在ES段中。

例2:

在使用中容易出错的指令用法指出下列指令的错误:

MOVAH,BX;源、目的字长不一致

(2)MOVSI,BX;源、目的不能同时为存贮器寻址方式(3)MOVAX,SIDI;基址变址方式不能有SI和DI的组合(4)MOVAX,BXBP;基址变址方式不能有BX和BP的组合(5)MOVBX,ES:

AX;AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式(6)MOVBYTEPTRBX,1000;1000超出一个字节的表数范围(7)MOVAX,OFFSETSI;OFFSET只用于标号(8)MOVCS,AX;CS不能作为目的寄存器(9)MOVDS,BP;段地址不能直接送入数据段寄存器,例3:

推断指令的执行结果DATASEGMENTTABADW1234HDATAENDS.MOVBX,TABALEABX,TABA请写出上述两条指令执行后,BX寄存器中的内容。

答案:

MOVBX,TABA;执行后(BX)=1234H,内存中的数据LEABX,TABA;执行后(BX)=OFFSETTABA,偏移地址,例4多字节加法的程序设计变量DATAX和DATAY定义如下:

DATAXDW0148HDW2316HDATAYDW0237HDW4052H按下述要求写出指令序列:

DATAX和DATAY中的两个字数据相加,和存放在DATAY和DATAY+2中。

实现的运算为:

23160148H+40520237H=?

MOVAX,DATAX;取第一个要加数的低字ADDAX,DATAY;与第二个数低字相加,结果在AX中MOVBX,DATAX+2;取第一个数要加的数的高字ADCBX,DATAY+2;与第二个数高字相加,结果在BX中MOVDATAY,AXMOVDATAY+2,BX;保存和,注意地址为2个字节在编程时要考虑到低字相加后产生的进位,例5:

乘法指令应用(无符号)两个16变量DATAY和DATAX定义如下:

DATAYDW0148H;ADW2316H;BDATAXDW0237H;CDW4052H;DRESULTDW12DUP(0)按下述要求写出指令序列:

DATAY和DATAX两个字相乘(用MUL)。

ABCDEFGHHGFEDCBANNNNNNNNNMMMMMMMMMAAAAAAAAABBBBBBBBBCCCCCCCCCDDDDDDDDDEEEEEEEEEFFFFFFFFFXXXXXXXXXXXXXXXXX,ABCDEFGHHGFEDCBANNNNNMMMMMAAAAABBBBBDX(0)AX(0)ABCDEFGHHGFEDCBACCCCCDDDDDEEEEEFFFFFDX

(1)AX

(1),字相乘后位相加的要求,MOVAX,WORDPTRDATAX;取乘数第一个字MOVBX,WORDPTRDATAY;取被乘数第一个字MULBX;(AC)MOVRESULT,AX;结果低字AX(0)MOVRESULT+2,DX;结果高字DX(0)MOVAX,WORDPTRDATAX;取乘数第一个字MOVAX,WORDPTRDATAY+2;取被乘数第二个字MULBX;(AD)MOVRESULT+4,AX;结果低字AX

(1)MOVRESULT+6,DX;结果高字DX

(1),MOVAX,WORDPTRDATAX+2;取乘数第二个字MOVBX,WORDPTRDATAY;取被乘数第一个字MULBX;(BC)MOVRESULT+8,AX;结果低字AX

(2)MOVRESULT+10,DX;结果高字DX

(2)MOVAX,WORDPTRDATAX+2;取乘数第二个字MOVBX,WORDPTRDATAY+2;取被乘数第一个字MULBX;(BD)MOVRESULT+12,AX;结果低字AX(3)MOVRESULT+14,DX;结果高字DX(3),MOVAX,RESULT+2MOVBX,RESULT+4MOVDX,RESULT+8ADDAX,BXADCAX,DX;DX(0)+AX

(1)+AX

(2)MOVRESULT+2,AXMOVAX,RESULT+6MOVBX,RESULT+10MOVDX,RESULT+12ADCAX,BXADCAX,DX;DX

(1)+DX

(2)+AX(3)MOVRESULT+4,AXMOVAX,RESULT14ADCAX,0000H;DX(3)+CMOVRESULT6,AX,例6:

移位指令应用试分析下面的程序段完成什么操作?

MOVCL,04SHLDX,CL;DX左移4位。

左移次数CL中的数MOVBL,AHSHLAX,CL;AX左移4位SHRBL,CL;BL右移4位答案:

将DX、AX中的字左移4位,BL右移4位,例7:

变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。

非压缩BCD码格式:

0000XXXXHMOVAX,0;(MOVAH,00H)AX高8位清0MOVAL,N1;取个位数SUBAL,N2;个位减AAS;非压缩的BCD数的减法结果进行调整MOVDL,AL;将正确结果保存在DL中MOVAL,N1+1;取十位数SBCAL,N2+2;十位减,考虑个位有借位AAS;非压缩的BCD数的减法结果进行调整MOVDH,AL;将正确结果保存在DH中,例8:

假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响条件码请给出条件码SF、ZF、OF、CF的值。

SBBAX,BX;2060H-3000H(AX)=F05FH,(SF)=1,(ZF)=0,(OF)=0,(CF)=1,假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,.(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响条件码请给出条件码SF、ZF、OF、CF的值。

(2)CMPAX,WORDPTRSI+0FA0H;2060H-A006H目的操作数的地址:

DS16+SI+0FA0H=40000H+2060+0FA0=43000H执行此指令后AX中的内容不变!

只影响标志位!

2060H-A006H0010000001100000-10100000000001100010000001100000+01011111111110101000000001011010结果:

(SF)=1,(ZF)=0,(OF)=1,(CF)=1OF=1两数符号相反(正数-负数、或负数-正数),而结果符号与减数相同。

OF=0同符号数相减时或不同符号数相减,而结果符号与减数不相同。

假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,.(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响条件码请给出条件码SF、ZF、OF、CF的值。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2