zoukankan      html  css  js  c++  java
  • Debug 和 masm 汇编编译器的区别

    1: DEBUG 中的汇编语句的数字可以字母开头,比如说

    mov ax, a000h
    

    在 DEBUG 中就是合法的,但是在 masm 汇编中就是不合法的语句。

    2: 在 DEBUG 中数字后面不可以直接跟上h,如

    mov ax, 1000h
    

    在 DEBUG 中是不合法的。但是在 masm 汇编中就是合法的。而且建议在 masm 汇编中在所有数字后面加上h,因为数字后面不加h在 masm 编译器看来就是十进制的,于是像 mov ax, 400a 这样的语句会被判断是非法的,编译器会说你这个数字超越十进制的极限了。

    0mEaE8.png

    3:DEBUG 中将内存中的数据存入寄存器可以直接

    mov al, [0]
    

    但是如果在 masm 程序源代码中这么写,会被编译器编译成

    mov al, 0
    

    在 masm 汇编源代码中我们要把一个内存中的数据传给寄存器,有两种方法,一种是用 bx 来存储偏移地址,然后将 ds:bx 指向的内存上的数据传输给寄存器。如

    mov ax, 2000h
    mov ds, ax
    mov bx, 0
    mov al, [bx]           ; 这里还能这么写:mov al, ds:[bx]
    

    或者像这样

    mov ax, 2000h
    mov ds, ax
    mov al, ds:[0]
    
  • 相关阅读:
    05-3. 六度空间 (PAT)
    05-2. Saving James Bond
    05-1. List Components (PAT)
    04-3. Huffman Codes (PAT)
    04-2. File Transfer (PAT)
    04-1. Root of AVL Tree (PAT)
    03-3. Tree Traversals Again (PAT)
    03-2. List Leaves (PAT)
    03-1. 二分法求多项式单根(PAT)
    CDH Namenode自动切换(active-standby)
  • 原文地址:https://www.cnblogs.com/Node-Sans-Blog/p/13752222.html
Copyright © 2011-2022 走看看