汇编语言学习笔记3(王爽)

内存字的储存

一个字=两个字节,即一个字需要两个内存单元储存。 高地址放高位字节,低地址放低位字节。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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值