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崩溃。

  • 相关阅读:
    Flexbox 可视化属性
    latex 数学公式
    迭代器模式 rx 应用
    小程序开发 easy-less 配置
    react-devtool 消息处理渲染 源码理解
    csrf jsonp
    koa1 源码详解1
    Immutable api example
    es6 ajax
    lodash 替换 underscore
  • 原文地址:https://www.cnblogs.com/asm085/p/9927664.html
Copyright © 2011-2022 走看看