汇编注意

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等寄存器属于确定大小

 

posted @ 2017-05-23 23:05  congmingyige  阅读(207)  评论(0编辑  收藏  举报