以前的汇编语言期中试题及答案讲述.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
期中试题答案 1.请写出8086CPU内部的16位寄存器的名称和各自的功能?(本题10分) 程序可见的寄存器分为通用寄存器、专用寄存器、段寄存器3类。通用寄存器包括数据寄存器(AX、BX、CX、DX)、变址寄存器(SI、DI)、指针寄存器(SP、BP),专用寄存器包括指令指针寄存器(IP)和标志寄存器(FLAGS),段寄存器包括代码段寄存器(CS)、数据段寄存器(DS)、堆栈段寄存器(SS)、附加段寄存器(ES)。 1.通用寄存器 (1)数据寄存器 AX(Accumulator)寄存器称为累加器。用途:它是算数运算的主要寄存器,在乘、除(MUL、IMUL、DIV、IDIV)指令中用来隐含地提供被乘数或被除数和存储结果;在扩展指令(CBW、CWD)中隐含地提供被扩展的操作数;在DOD和BIOS功能调用中,用AH存储指定调用功能号,AL存储指定调用子功能号;另外在所有的I/O指令(IN、OUT)中都使用这一寄存器和外部设备传送信息等。所以累加器(AX)使用频度最高,主要用于算术、逻辑运算以及与外设传送信息等。 BX(Base Register)寄存器称为基址寄存器。用途:它可以作为普通的通用寄存器来使用,除此之外它常用来存储某一内存单元的偏移地址或偏移地址的一部分,偏移地址又叫有效地址或基地址,这也正是该寄存器名字的由来。它是4个16位数据寄存器中唯一一个能够用来存储存储器偏移地址的寄存器。 CX(Count Register)寄存器称为计数器。用途:一般在循环(LOOP)或串重复操作(REP、REPE、REPNE)等指令中用它作为的隐含计数器,控制指令重复循环的次数;在位操作(SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR)中,当移多位时,要用CL寄存器来存放移位的位数。 DX(Data Register)寄存器称为数据寄存器。用途:在16位机器中进行32位的算术运算时常用把DX和AX组合在一起存放双字数据,其中AX用来存放双字数据中的低字,而DX用来存放双字数据的高字,该双字可以表示成DX:AX;在进行乘、除运算时,它可作为默认的操作数参与运算和存储运算结果,在I/O指令中当外设端口地址大于255时,必须将外设端口地址存储到DX寄存器中,然后指令采用间接的寻址方式执行指令。 (2)变址寄存器 SI寄存器和DI寄存器称为变址寄存器(Index Register),它们是16位的寄存器,不能分成8位寄存器。变址寄存器除了可以当做普通的通用寄存器外,主要用途是用于存储某个存储单元的偏移地址或偏移地址的一部分。 SI(Source Index)寄存器称为源变址寄存器,DI(Destination Index)寄存器称为目的变址寄存器。在字符串处理指令(MOVS、STOS、LODS、CMPS、SCAS)中,它们的主要用途是SI寄存器用来存储源字符串中字符所存储内存单元的偏移地址,DI寄存器用来存储目的字符串中字符所存储内存单元的偏移地址,并且在执行过程中SI和DI都具有自动增量或减量的功能,无需人工干预。 (3)指针寄存器 BP和SP寄存器称为指针寄存器(Pointer Register),它们同样是16位的寄存器,也不能分成8位寄存器。指针寄存器除了可以当做普通的通用寄存器外,它们的主要用途:是用于存放堆栈内存储单元的偏移地址。 SP(Stack Pointer)寄存器称为堆栈指针寄存器,它的主要用途是用于存储当前堆栈中栈顶元素的偏移地址,入栈(PUSH)和出栈(POP)指令会自动修改它的值,从而实现访问堆栈中栈顶元素,用它可直接存取堆栈中的数据,该寄存器的内容机器自动修改,无需人工干预,也属于一个专用的寄存器。 BP (Base Pointer)为基址指针寄存器,它的主要用途是用于存储堆栈中某一存储单元的偏移地址,从而实现访问堆栈中非栈顶数据。 通寄存器可用于暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,还各自具有一些规定的特殊。2.专用寄存器 指令指针寄存器(IP)和标志寄存器(FLAGS),在汇编语言程序中不能直接引用寄存器名,寄存器的内容是由机器自动修改或根据指令执行的结果进行自动设置,不允许用户对它干预。 (1)指令指针寄存器 IP(Instruction Pointer)称为指令指针寄存器。它的功能是存储下一条将要从主存中取出指令的偏移地址,也就是预取指令在内存中存储单元的偏移地址。在目标程序运行时,它始终指向下一条将要执行的指令,控制器一旦取得这条指令马上就修改IP寄存器的值,使它指向当前执行指令的下一条指令的偏移地址,IP寄存器的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令(LOOP等)、子程序调用指令(CALL)等。 (2)FLAGS寄存器 F

文档评论(0)

5500046 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档