zoukankan      html  css  js  c++  java
  • 第五章总结

    两个约定:

    约定符号():表示寄存器或者一个内存单元的内容,如(ax)表示ax中内容,(bx)表示bx内容,(20000H)表示内存20000H单元的内容。

    约定符号idata表示常数。

    [bx]用法:[bx]为一个内存单元,其中bx是偏移地址,也就是内存ds:bx处

    如mov  ax,[bx]就是把ds:bx处的值赋值给ax

    loop指令:

    格式:loop 标号

    标号有些类似在C语言中goto的用法.

    CPU执行loop时,先进行cx=cx-1,然后判断cx如果不为0就跳转至标号处执行程序,如果为0就继续向下执行。

    cx中存放循环次数.

    例如:

    mov ax 2
    mov cx,11

    s:add ax,ax

    loop s

    就可以计算2^12。

    我们也可以在debug中通过t,p,r命令来单步调试,观察程序运行的过程。

    段前缀:在访问内存单元的指令中,用于显式指明内存单元的段地址的ds,cs,ss,es.

    在8086中,0:200-0:02ff的256个字节的空间中,一般不会被别的程序使用,因此我们可以用debug查看一下,如果全部是0,则说明dos和其他合法程序没有使用这里,我们可以使用。

    而如果向其他空间写入可能导致一些异常,甚至dos崩溃。

  • 相关阅读:
    ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't supported yet问题
    Git配置工作
    Git多人协作
    Git分支合并
    网络收藏夹
    莫道桑榆晚,为霞尚满天
    2021幼升小
    2020年07月28日10:36:36
    JAVA中如果用BigDecimal做除法
    mybatis
  • 原文地址:https://www.cnblogs.com/asm085/p/9927664.html
Copyright © 2011-2022 走看看