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]
    
  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/Node-Sans-Blog/p/13752222.html
Copyright © 2011-2022 走看看