2021-03-31

用机器指令和汇编指令编程

关于D命令:

-4个段寄存器:CS、DS、SS、 ES。
-Debug在处理D命令的程序段中,必须有将段地址送入段寄存器的代码。
访问内存地址的指令如:“mov ax [0]”等一般默认段地址在ds(数据段一般都默认段地址ds)中,所以Debug在执行如:“d 段地址:偏移地址”这种D命令时,将段地址送入ds中比较方便。


image.png

在E、A、U命令中使用段寄存器

-E命令:


image.png

-U命令


image.png

-A命令
image.png

-一般情况下,用T命令执行mov ss,ax的时候,它的下一条指令mov sp,10也紧跟着执行了。一般情况下,用T命令执行一条指令之后,会停止继续执行,显示出当前CPU各个寄存器的状态和下一步要执行的指令,但T命令执行mov ss,ax的时候,没有做到这一点。
不单是mov ss,ax,对于比如mov ss,bx,mov ss,[0],pop ss等指令都会发生这样的情况。共性:都是修改栈段寄存器ss的指令。这属于中断机制。目前应该知道:Debug的T命令在执行修改寄存器ss的指令时,下一条指令也紧接着被执行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容