zoukankan      html  css  js  c++  java
  • 汇编注意

    1.汇编运行程序时卡住:一般是没有设置开始标识符和CX编写错误


    2.重新编写程序后没有变化:一般是没有重新编译(masm xx;)和连接(link xx;)

    3.程序有结果,但是没有结束运行:1.少写了mov ah,4ch , int 21h;2.CX编写错误

    4.根据调试需要,可以修改初始值,能使程序更快地进入所需要观察的状态。

    5.要想查看程序对内存单元的修改:若程序很长,逐句编译查看内存很麻烦。只需运行一次程序后再用debug查看寄存器,然后通过寄存器来获得内存单元的地址,从而查看内存单元的内容。

    6.不能直接把数据送到内存单元,需要间接借助寄存器(某些)

    如:

    mov word ptr es:[bx],ds:[bx+si+3]是错的

    要改为

    mov ax,ds:[bx+si+3]

    mov es:[bx],ax

    add byte ptr ds:[bx],es:[bx]是错的

    要改为

    mov al,es:[bx]

    add ds:[bx],al

    7.不能直接把数据送到段寄存器(cs,ss,ds,es),需要间接借助寄存器(某些)

    如:

    mov ds,data是错的

    要改为

    mov ax,data

    mov ds,ax

    8.当两个数值/寄存器都不确定大小(byte/word/dword)时,使用byte/word/dword ptr

    其中offset ,[]:[]属于不确定大小;ax,al等寄存器属于确定大小

  • 相关阅读:
    shell(计算机壳层)(二)
    Linux Bash Shell快速入门 (三)
    Lua
    bash
    Perl
    脚本语言
    JSP中获取客户端或浏览端信息的方式
    linux环境变量
    逆向思维
    【maven】IDEA:存在jar包,pom.xml文件没报错,但是Maven-Project-Dependencies有红线报错
  • 原文地址:https://www.cnblogs.com/cmyg/p/6896705.html
Copyright © 2011-2022 走看看