汇编语言学习笔记3(王爽)
2017-11-18 12:42
423 查看
内存字的储存
一个字=两个字节,即一个字需要两个内存单元储存。高地址放高位字节,低地址放低位字节。8086CPU为16位结构,有16位数据线,一次性可传输16位数据,也就是说对内存一次性操作两内存单元即为一个字。DS寄存器
DS寄存器通常用来存放CPU要访问数据的段地址,[...](eg:[0])表示内存单元的偏移地址。mov bx,1000H
mov ds,bx
mov al, [0]
上面的3 条指令将1000:0中的数据读到al 中。
注意:8086CPU不支持将数据直接送入寄存器。
SS、SP寄存器
CPU栈机制:一段以栈方式访问的内存单元(先进后出),在任意时刻SS:SP指向栈顶元素。SS:SP指向的元素是在栈中的(用来判断空栈SP值)!入栈和出栈指令:push ax (SP=SP-2,将ax中数据送入栈中) pop ax(出栈一次送入ax中,SP=SP+2)push和pop等栈操作指令修改的只是SP,所以栈顶变化范围最大是0~FFFFH
小问题:
(1) 将 10000H-10000FH 这段空间当作栈, 初始状态栈是空的;
(2)设置 AX=001AH, BX=001BH;
(3)将 AX、 BX中的数据入栈;
写下汇编指令画出内存状态图
注意一下内存图:涉及要点一次操作一个字,高位和低位摆放,先进后出原则
实验
相关指令:-d 段寄存器:偏移地址来查看内存、如-d ds:0、-d cs:0。一个简单的汇编程序:
assume cs:codesg
codesg segment
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00H
int 21H
codesg ends
end
汇编源程序包涵两种指令:汇编指令、伪指令。汇编指令是有对应的机器码的指令, 可以被编译为机器指令, 最终为CPU所执行。 而伪指令没有对 应的机器指令,最终不被CPU所执行。 伪指令是由编译器来执行。
一:1、xxxx segment 2、 xxxx ends(定义一个段名字为xxxx、从1开始从2结束)
二:end汇编结束标志
三:assume 将特定用途段与相关联段寄存器关联
以上是伪指令
mov ax,4c00H
int 21H
这两段是程序返回指令
编译:masm、连接:link
相关文章推荐
- 王爽汇编语言学习笔记(十) --CALL和RET指令
- 王爽汇编语言第六章学习笔记和实验五答案
- 王爽汇编语言第二版学习笔记之实验15
- 王爽汇编语言学习笔记(三)--寄存器(内存访问)
- 王爽汇编语言学习笔记(四) --第一个程序
- 王爽汇编语言学习笔记(五)--loop与[bx]
- 汇编语言(王爽)》(第九章、实验8分析一个奇怪的程序)学习笔记
- 王爽汇编语言第二版学习笔记之实验13(1)
- 汇编语言学习笔记4(王爽)
- 王爽汇编语言第二版学习笔记之实验11
- 王爽汇编语言第二版学习笔记之实验12
- 王爽汇编语言第二版学习笔记之实验14
- 王爽汇编语言学习笔记(九) --转移指令的原理
- 王爽汇编语言第二版学习笔记之检测点13.1
- 王爽汇编语言学习笔记(六)
- 王爽汇编语言第二版学习笔记之实验13(2)
- 汇编语言王爽第二版学习笔记第一章:基础知识
- 王爽汇编语言学习笔记(一)
- 王爽汇编语言学习笔记(七) --数据处理中的两个问题
- 王爽汇编语言学习笔记(二)--寄存器