一: 部分寄存器作用
CS:IP |
任意时刻cpu将CS:IP指向的内容当做指令执行 |
DS |
存放要访问数据的段地址 |
SS:SP |
任意时刻,SS:SP指向栈顶元素 |
二:第一个程序
1:使用dos的edit编辑,现在看界面果然烂
2:源程序分为两部分
伪指令:由编译器所执行的指令
Ps:xxx segment
.....
xxx ends//成对使用的指令,定义了一段
end//汇编程序结束的标记
asume//假设某一段寄存器和程序的某一个用segment.....ends定义的段相关李娜
汇编指令:有对应的机械码的指令,可以被编译为指令,最终为cpu为执行
3:标号代表了一个地址,类似codesg,最终会在编译和连接中处理成一个段地址
4:程序的返回:command将程序载入内存,再将CPU交个程序,程序运行完后,将权利返回command
语法:mov ax,4c00h
Int 21h(别问我为啥,不知道啦)
二:编译,连接,调试
工具:masm,link,debug
用法:
假设:已经有源程序文件 c: 1.asm
1: 输入:masm c: 1;
在当前路径下生成1t.obj,跳过生成的.lst,.crf,两个文件
2:输入:link t1;//不同代码可能还得连接其他文件
在当前路径生成 1.exe,忽略中间文件.map,.lib 的生成
3:输入:debug t1.exe
注意路径,进入debug的程序之中,基本操作没有变,使用u可以查看所有的程序,t运行一个单句,运行到int 21时,使用p