汇编中遇到的问题

1.汇编中对名字项要求比较灵活,不过不允许以数字开头

2.当程序顺序执行时,每取一条指令,IP指针增加的值有指令长度决定,且指向下一条指令的首地址

3.MOV指令有关:

    1)不允许段寄存器间直接数据传送:mov ds,es    ;非法

        不允许向段寄存器传立即数:MOV DS,2000H    ;非法

    2)不允许储存单元间直接数据传送:mov [si],[di]    ;非法

    3)类型一致:    mov ax,bl    ;非法

                               mov [di],bl    ;合法

    4)不允许向CS中传值    MOV CS,AX    ;非法

    5)MOV CX,NUM1-NUM2    ;合法(有人说是因为offset num1-num2一定成立,为什么。。。)

        MOV CX,NUM1+NUM2    ;非法。。。为什么啊啊

    6)MOV [DX+DI],AL    ;基址变址相关,有效地址EA=BX/BP+SI/DI

4.段内寻址时可提供偏移地址的寄存器:BX(基址寄存器),BP(堆栈指针),SI(源地址寄存器,与ds有关),DI(目的地址寄存器,与es有关)

5.END语句:标志源程序到此结束

6.将DX中内容除以2,用    SAR DX,1    却不能用div dx,2(为什么。。。?)

7.条件转移指令相关:

    1)JZ/JE    利用ZF标志位,当结果为0时跳转,此时ZF=1

8.逻辑运算指令AND,OR,XOR,TEST指令,源操作数任意寻址方式,目的操作数只能是立即数之外的其他寻址方式,并且两操作数不能同时为存储器寻址方式;均设置CF=OF=0,根据结果设置SF,ZF,PF,对AF未定义

9.各标志位含义:CF:进位标志,PF:奇偶标志(PF=1表示结果中低8位含1的个数为偶数),AF(调整标志),ZF(0标志),SF(符号标志),OF(溢出标志)

10.INC DA[BX]时要用到段寄存器DS

11.INC与DEC针对字节,所以INC BYTE PTR [BX] 合法,INC [BX] 不合法

12.CPU发出的访问存储器的地址是物理地址

13.是计算机执行某种操作的命令是指令

14.DEBUG相关:

    1)d (dump)显示主存单元内容

    2)e (enter)修改主存内容

    3)f(fill)对一个主存区域内填写内容

    r    显示和修改寄存器

    a    汇编

    u    反汇编

    g    运行

    t    单步执行

    p    不需要调试子程序、中断服务程序、循环体时用p,类似t

    q    推出debug返回dos

15.堆栈以字为单位压入弹出,压入堆栈时,地址减小,sp-2,弹出时sp+2

16.生成exe后,用DEBUG 加载程序后,用R命令查看知道DS=075A,所以程序的开始地址是076A。

17.运算器的主要功能是进行逻辑运算和算术运算

18.时钟周期<机器周期<指令周期

19. ?$号不能单独作为标号

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值