以下内容来自 汇编语言 第2版 作者:王爽
1. 8086cpu不支持将数据直接送入段寄存器,mov bx,1000H, mov ds,bx 可用bx中转,也可用别的寄存器中转。
2. cs代码段寄存器、ip指令指针寄存器指示了cpu当前要读取指令的地址
3. mov不能用于cs、ip ,jmp用于cs、ip jmp 段地址:偏移地址 jmp 某一合法寄存器 (修改ip)
4. debug命令选项
r 查看 -r、修改( -r 寄存器名)cpu寄存器内容
d 查看内存内容 -d 段地址:偏移地址 128个内存单元 接着使用 -d 列出后续128个内存单元内容 -d 段地址:起始偏移 结束偏移 -d 段寄存器:偏移地址
e 改写内存内容 -e 起始地址 数据 数据 数据 。。。 -e 起始地址 回车 (空格跳过,回车结束)
e 向内存写入机器码,u查看内存中机器码的含义,t执行内存中的机器码
u -u 段地址:偏移地址
t -t 执行 cs:ip指向的指令 在执行修改寄存器ss的指令时,下一条指令也紧接着被执行。
a -a 段地址:偏移地址 以汇编指令的形式在内存中写入机器指令
5. [...]表示一个内存单元,...表示偏移地址,ds为段地址
6. mov 操作 不可 段寄存器到段寄存器 也不可 内存到内存 也不可数据到段寄存器
数据到内存 示例: 注意必须加上ptr语句 mov [0],word ptr 5 或 mov [0],byte ptr 5
add 、 sub操作 不可操作 段寄存器 也不可内存到内存 也不可数据到内存
7. 对应
8. 栈操作 push pop 都是以字为单位!!!
答:SP = 0000
段寄存器有: CS DS SS ES
inc 对内容+1,不是地址。
reg 寄存器 sreg 段寄存器
中断处理程序要保存自身用到的寄存器的原因如下:中断嵌套
bx、si、di、bp,在8086cpu中,只有这4种寄存器可以用在[...]中来进行内存单元的寻址。可以单独出现或以[bx+si]、[bx+di]、[bp+si]、[bp+di]。只要在[...]中使用bp,而指令中没有给出段地址,段地址就默认在ss中。