编译 obj ;中间结果。lst-列表文件 crf -交叉引用文件
link
程序的运行和跟踪-debug装载程序
p命令
g命令 一直运行 到断电或者结束
【】-汇编自己的规定 语法 - 来代表内存中的单元
()为方便学习约定的表示内存单元 寄存器的内容
约定 idata表示常量
inc bx 加一的指令
loop s指令 cs默认循环次数
机器内部指令 其实就是标记一个s地址 然后loop到那个s地址-------相当于goto
段前缀的使用 从 内存取数据段取数 ds:【0】
对策
访问连续内存 这样 连续取值ds:【bx】
数据拷贝-改进es-附加段寄存器—用作另一个段前缀 更加方便 段之间的操作
安全存放数据
dw 定义字型数据 db dd
问题
改进 start ;sc:ip会直接指到真正代码开始的地方而不是数据
代码段中 使用栈
数据 代码 栈 放入不同位置
初始化assume cs:code,ds:data,ss:stack
cs不用重新初始化
内存寻址方式 - 导学
计算机处理字符问题的方法
对于字符串‘abc’------ascii—大小写字母 差20H
大小写转换 用逻辑and dest src
寻址方式【bx idata】-----(bx) idata 立即数
【bx idata】进行数组处理-----【bx 0】数组1;【bx 5】数组2;然后inc bx
对比c语言数组:a【i】 b【i】
汇编:0【bx】 5【bx】
cpu内部寄存器 -14个总共 – 通用ax bx cx dx 变址寄存器 si di
SI source index 源变址寄存器 DI destination index 目标变址寄存器 BX 通用寄存器-常作为基址寄存器
应用
像随着 完成复制
【bx si】和【bx di】方式 指定地址
【基质 变址 立即数】方式寻址
内存寻址方式小结
二重循环问题—用栈保存数据
二重循环—用栈保存数据---------更加常用 将外层循环cx压栈
内存的寻址方式 总结
直接寻址
寄存器间接
寄存器相对寻址
基址变址寻址
相对基址变址
那些寄存器用于寻址-bx si di bp
注意: 错误指令mov ax,【cx】 原因:只有bx bp si di 可以用在对【】对内存单元寻址 ------------电路设计问题!