飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 15754|回复: 48

[分享] 汇编基本概念集锦〔破解新手必学〕

[复制链接]
  • TA的每日心情

    2022-1-22 22:38
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2006-3-8 20:23:37 | 显示全部楼层 |阅读模式
    1. 数在计算机中是怎样表示的?
      答:计算机中的数是用二进制来表示的,数的符号也是用二进制表示的,这样表示的数称为机器数。机器数可用不同的码制来表示,常用的有原码、反码和补码表示法,补码表示法是最常用的一种表示方法。

      2. 补码有哪些性质?
      答:用补码表示的数有以下特征:对X的补码做求补运算,可以得到-X的补码,因此计算机中用对减数求补的方法把减法转换为加法。补码的加、减运算十分简便,不必判断数的正负,只要符号位参加运算,能自动得到正确结果。

      3.ASCII码的0AH和0DH对应的是什么字符?
      答:它们并不代表可显示的字符,而是表示某种操作。0DH表示回车,就是使光标回到本行首位;0AH表示换行,就是使光标进入下一行,但列位置不变。

      4.机器字长的含义是什么?
      答:机器字长是指微处理器一次可以直接处理的二进制数码的位数,它通常取决于微处理器内部通用寄存器的位数和数据总线的宽度,它标志着计算精度。

            5. 存储器与寄存器有什么不同?
      答:寄存器在CPU的内部,它的访问速度快,但容量小(8086微处理器只有14个16位寄存器)、成本高,它用名字来标识(如AX、BX等),没有地址;存储器在CPU的外部,它的访问速度比寄存器慢,容量大(20根地址线寻址1M内存空间)、成本低,存储单元用地址来标识,地址可用各种方式形成。

      6. 标志寄存器中的状态标志和控制标志有什么区别?
      答:状态标志用来记录程序运行结果的状态信息,许多指令执行完毕后都相应地设置状态标志,它又称为条件码标志,包括进位标志、溢出标志、符号标志、零标志、奇偶标志等;控制标志用来控制处理器执行指令的方式,一般在程序中根据需要由指令设置,如方向标志、中断标志、陷阱标志等。

      7.溢出标志OF和进位标志CF有什么不同?
      答:当运算结果的最高有效位有向高位的进位(加法)或借位(减法)时,进位标志CF置1;当运算结果超出了机器所能表示的数的范围时,产生溢出,溢出标志OF置1。

      8.一个字在存储器中是如何存放的?
      答:一个字在存储器中占用相邻的两个存储单元,低8位存入低地址,高8位存入高地址,字单元的地址用它的低地址来表示。

      9.为什么要将存储器分段管理?
      答:对于16位字长的8086CPU而言,只能表示16位存储器地址(编号从0000H~FFFFH);但8086CPU的地址线是20根,最大可寻址1MB的存储空间,其物理地址范围从00000H~FFFFFH。为了用16位地址在1MB空间寻址,将1MB存储器空间分成许多逻辑段,这样每个存储单元就可以用"段地址:偏移地址"来表示其准确的物理位置。
      段地址是逻辑段在主存中的起始位置,8086规定段地址必须是xxxx0H形式,省略低4位0,段地址就可用16位二进制数表示,通常保存在段寄存器中;偏移地址是存储单元距离段起始位置的偏移值,每个段最大64KB,所以偏移地址也可用16位二进制数表示。这样,物理地址就可通过段地址乘以16加上偏移地址得到。

      10.程序中的指令与数据在存储器中是怎样存放的?
      答:程序中的指令序列存放在代码段中,程序中使用的堆栈存放在堆栈段中,程序中的数据默认存放在数据段中,有时也放在附加段中。


        11. 什么是寻址方式?
      答:在指令中,有时要寻找操作数的地址,有时要寻找转移地址(如转移指令、CALL指令等),这些寻找地址的方式就称为寻址方式。8086微处理器寻找操作数地址有七种方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等;寻找转移地址的方式有段内寻址和段间寻址,它们又分为段内直接、段内间接、段间直接、段间间接寻址等。

      12. MOV指令有什么特殊规定?
      答:MOV指令是双操作数指令,两个操作数不能同为存储器寻址方式且不能同时为段寄存器,目的操作数不允许用立即寻址方式且不能是代码段段寄存器CS,立即数不能直接送段寄存器等。

      13.PUSH指令和POP指令有什么特点?
      答:这是两个重要的对堆栈操作的指令,它们只能做字操作,它们所带的操作数不能是立即数,POP指令不允许使用CS寄存器。

      14.算术移位指令和逻辑移位指令有什么不同?
      答:算术移位指令一般用于带符号数的乘2或除2运算,正确的运算结果应保证符号位不变;逻辑移位指令用于无符号数的乘2或除2运算,参与移位的操作数的最高有效位并不代表符号位。

      15.ADD、SUB、NEG等指令执行完毕后,CF和OF的值意味着什么?
      答:CF=1意味着把参与运算的数看作无符号数时,运算出现了错误,同时它确实代表最高有效位有向高位的进位(加法)或借位(减法);OF=1意味着把参与运算的数看作带符号数时,运算出现了错误。也就是说,CF位可用来表示无符号数的溢出,OF位可用来表示带符号数的溢出。

      16.乘法指令和除法指令有什么特殊规定?
      答:在乘法指令中,隐含使用累加器AL或AX参与运算,两个8位数相乘得到16位乘积,存放在AX中;两个16位数相乘得到32位乘积,存放在DX,AX中。在除法指令中,隐含使用DX,AX或AX做被除数,16位数除以8位数,8位商在AL中,8位余数在AH中;32位数除以16位数,16位商在AX中,16位余数在DX中。

      17.逻辑运算指令的主要作用是什么?
      答:逻辑运算指令对处理操作数的某些位很有用,例如可屏蔽某些位(将这些位置0),将某些位置1,将某些位变反,测试某些位等。

      18. 串处理指令有什么特殊规定?
      答:在串处理指令中,源串默认在数据段中,但允许使用段跨越前缀来修改,源操作数用SI寻址;目的串只能在附加段中,目的操作数用DI寻址。SI与DI有自动增、减量的功能,可完成正向或反向、字节操作或字操作的串处理。

      19.条件转移指令和无条件转移指令有什么不同?
      答:条件转移指令的位移量只允许8位,即目标地址应在本条转移指令的下一条指令地址的-128 ~ +127个字节的范围之内,因此它只能实现段内转移;无条件转移指令则没有此限制,它能够实现段内和段间两种转移,段内转移可使用8位或16位位移量。

    ==========================================
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-9 10:18:58 | 显示全部楼层
    还可以,确实是基本教程
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-11 09:48:35 | 显示全部楼层
    学习啦,打印下来看...
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-2-4 11:15
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-3-12 11:30:08 | 显示全部楼层
    新手确实值得学学。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-3-12 14:11:15 | 显示全部楼层
    没学过,还不知道有这东东,谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2016-6-4 16:11
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-3-12 14:36:22 | 显示全部楼层
    认真学习学习~~~
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-2-4 11:15
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-3-15 21:12:15 | 显示全部楼层

    基本的很哪

    不愧为基本知识,太基本了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-20 16:16:48 | 显示全部楼层
    学习学习,再学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-29 09:41:32 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-29 23:25:09 | 显示全部楼层
    好东西。。不错啊
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表