码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言第三章总结

时间:2018-11-01 11:53:40      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:元素   栈内存   push a   bsp   汇编语言   寄存器   代码   cpu   最大   

第三章中,我们从访问内存的角度了解学习几个寄存器

下面将知识点总结如下:

一、16位寄存器存储一个字,就要用高8位存放高位字节,低8位存放低位字节

技术分享图片

0为低地址单元,1为高地址单元,表示数据4E20H(20000),起始地址是0,即是0地址字单元

存储用两个单元,逆序存放,而存储字节只用一个单元

二、mov al,[0]  表示将内存单元内容存入寄存器,【】中的0表示偏移地址,DS寄存器,存放访问数据的段地址

用mov指令只能通过如

mov bx,1000

mov ds,bx

为DS寄存器赋值,8086CPU不支持将数据直接送入段寄存器的操作

mov [0],al  可以将数据从寄存器送入内存单元

mov 段寄存器,寄存器 / mov 寄存器,段寄存器  都可执行

mov 内存单元,段寄存器

mov 段寄存器,内存单元  都可执行

三、编程时可将一组内存单元用ds存放段地址从而定义为一个数据段,再用偏移地址访问具体单元

四、栈:最后进入这个空间的数据最先出去

入栈push 和出栈pop都是以为单位

栈顶的段地址存放在SS中,偏移地址存放在SP中,任意时刻SS:SP指向栈顶元素

push ax  1.SP=SP-2    2.将ax内容送入SS:SP指向的栈内存

pop ax    1..将SS:SP指向的栈内存送入ax  2.SP=SP+2

空栈时,SS:SP指向栈最底部单元下面的单元(最底部字单元偏移地址+2)

五、8086CPU没有寄存器检测越界

六、push和pop可以传送段寄存器或者内存单元,如:

push ds

pop [0]

段地址在指令执行时,从DS获得

七、push、pop等栈操作指令,修改的只是SP,即栈顶变化范围最大为0~FFFFH

八、可以将长度为N(N≤64KB)的一组地址连续,起始地址为16的倍数的内存单元定义为栈段,同时将SS:SP指向定义的栈段

九、1.代码段CS、IP   2.栈段SS、SP  3.数据段DS  的指向将内存做为不同用处

汇编语言第三章总结

标签:元素   栈内存   push a   bsp   汇编语言   寄存器   代码   cpu   最大   

原文地址:https://www.cnblogs.com/msag/p/9886714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!