汇编语言1-5章笔记
1 | cs:ip //执行该行 |
写文件名不要带. 如6.4.asm
Debug
-R
1 | -r //查看,改变cpu寄存器内容 |

1 | -r ax //修改ax |
-D
1 | -d 段地址:偏移地址 //查询此物理地址 |

(1)左侧为起始地址
(2)中间为机器码
(3)右侧为每个机器码对应的可见字符,不可见为’.’
-E
1 | -e 段地址:偏移地址 1 2 3 4 5 //修改此内存中内容 |

还有一种操作

直接改字符

更甚者,字符串

-u
1 | -u 段地址:偏移地址 //将机器码转化成汇编 |

-t
1 | -t //执行cs:ip指向的指令 |
-a
1 | -a 段地址:偏移地址 //以汇编的方式转化成机器码向内存写入机器指令 |
-g
1 | -g 0012 //跳转到0012 |
综上所述

DS 和 [address]
ds:段寄存器
1 | mov bx,1000 |
8086cpu不支持直接将数据送入段寄存器
1 | //将寄存器数据送入内存单元10000H |
mov,add,sub

push,pop
1 | ss:sp //栈地址 |
小心栈超界
ss性质如ds,不可直接赋值
执行push时,cpu先sp-2,再向ss:sp传送
执行pop时,cpu先读取ss:sp,再sp-2
第一个程序

伪指令
(一)
1 | xxx segment |
(二)
1 | end //标记整个程序结束 |
end与ends不同,ends与segment捆绑使用
(三)
1 | assume |
假设某一寄存器与程序片段相关联
程序返回
1 | mov ax,4c00H |
结束相关的概念

编译生成
1 | //编译1.asm |
debug 1.exe
1 | -p //int 21H |
[bx]
1 | mov ax,[bx] //将ds:(bx)处的内存送往ax |
(ax)表示ax的内容
loop
1 | mov cx,11 |


masm

All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
