汇编网首页登录博客注册
wohuibian的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
文章收藏

[2014-06-07 13:21] 汇编学习——第4章 第一个程序

1.0
我们以前都是在Debug中写一些指令,在Debug中执行。
现在我们将开始编写完整的汇编语言程序
用编译环和链接程序将它们编译链接成为可执行文件(.exe)...
阅读全文 | 评论次数(1) | 浏览次数(869) | 所属类型(汇编学习)

[2014-06-04 14:05] 汇编实践——实验任务2

使用Debug,将程序段写入内存,逐条执行...
阅读全文 | 评论次数(0) | 浏览次数(595) | 所属类型(汇编作业)

[2014-06-04 14:02] 汇编实验——2.用机器指令和汇编指令

-D 段寄存器:偏移地址

E、A、U 命令同样可以使用段寄存器

-E 段寄存器:偏移地址
-A 段寄存器:偏移地址
-U 段寄存器:偏移地址


Debug的T命令在执行修改寄存器SS的指令时
              下一条指令也紧接着被执行...
阅读全文 | 评论次数(0) | 浏览次数(617) | 所属类型(汇编学习)

[2014-06-04 13:55] 汇编作业——检测点3.2

MOV AX,1000H
MOV DS,AX
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
PUSH [0]
PUSH [2]
PUSH [4]
PUSH [6]
PUSH [8]
PUSH [A]
PUSH [C]
PUSH [E]


MOV AX,2000H
MOV DS,AX
MOV AX,1000H
MOV SS,AX
MOV SP,0000H
POP[E]
POP[C]
POP[A]
POP[8]
POP[6]
POP[4]
POP[2]
POP[0]...
阅读全文 | 评论次数(0) | 浏览次数(560) | 所属类型(汇编作业)

[2014-06-04 13:47] 汇编学习——段的综述

我们可以将一段内存定义为一个段
用一个段地址指示段,用偏移地址访问段内的单元

我们可以用一个段存放数据,将它定义为“数据段”
我们可以用一个段存放代码,将它定义为“代码段”
我们可以用一个段当作栈,将它定义为“栈段”

对于数据段,段地址放在DS中
用MOV、ADD、SUB等访问内存单元的指令时
CPU就将我们定义的数据段中的内容当作数据来访问

对于代码段,段地址放在CS中
将段中的第一条指令的偏移地址放在IP中
这样CPU就将执行我们定义的代码段中的指令

对于栈段,段地址放在SS中
将栈顶单元的偏移地址放在SP中
这样CPU在需要进行栈操作的时候
比...
阅读全文 | 评论次数(0) | 浏览次数(612) | 所属类型(汇编学习)

[2014-06-04 13:32] 汇编思考——问题(3.11---3.12)

将10000H--1FFFFH这段空间当作栈段,初始状态是空
此时,SS=1000H SP=0000H

PUSH POP等指令在执行的时候只修改SP
所以栈顶的变化范围是0000H--FFFFH
从栈空时候的SP=0,一直压栈,直到栈满时SP=0
如果再次压栈,栈顶将环绕,覆盖了原来栈中的内容
所以一个站段的容量最大为64KB...
阅读全文 | 评论次数(0) | 浏览次数(598) | 所属类型(汇编作业)

[2014-06-04 13:22] 汇编学习——第3章 寄存器(内存访问)

3.10  栈段

在编程时,根据需要,将一组内存单元定义为一个段
当作栈空间来用,从而定义了一个栈段
将SS:SP指向我们定义的栈段...
阅读全文 | 评论次数(0) | 浏览次数(592) | 所属类型(汇编学习)

[2014-06-04 13:18] 汇编学习——栈的综述

(1)8086CPU提供的栈的操作机制:
在SS、SP存放栈顶的段地址和偏移地址
入栈和出栈指令,根据SS:SP指示地址,以栈的方式访问内存单元

(2)PUSH指令执行步骤:①SP=SP-2 
                    ②向SS:SP指向的字单元中送入数据

(3)POP指令执行步骤: ①向SS:SP指向的字单元中读取数据 
                    ②SP=SP+2

(4)任意时刻,SS:SP指向栈顶元素

(5)8086CPU只记录栈顶,栈空间的大小我们要自己管理

(6)用栈来暂存以后需要恢复的寄存器的内容时
   寄存器内容...
阅读全文 | 评论次数(0) | 浏览次数(579) | 所属类型(汇编学习)

[2014-06-04 13:03] 汇编思考—— 问题(3.7---3.10)

用栈暂存以后需要恢复的寄存器中的内容时
 数据出栈和入栈的顺序相反

PUSH AX 是入栈指令,它的执行过程是

先将记录栈顶偏移地址的SP寄存器中的内容减2
使得SS:IP指向新的栈顶单元
然后再将寄存器中的数据送入SS:IP指向的新的栈顶单元

PUSH、POP实质上就是一种内存传送指令
                   可以再寄存器和内存之间传送数据

CPU执行MOV指令只需一步操作,就是传送

执行PUSH、POP指令需两步操作:
  
  执行PUSH指令:先改变SP,后向SS:SP处传送
  执行POP指令: 先读取SS:SP处数据,后改变...
阅读全文 | 评论次数(0) | 浏览次数(562) | 所属类型(汇编学习)

[2014-06-04 12:45] 汇编学习——第3章 寄存器(内存访问)

3.8  栈顶超界的问题

8086CPU工作机理:
           当前的栈顶在何处,当前要执行的指令是那一条

要根据可能用到的最大栈空间,来安排栈的大小,防止栈顶超界


3.9 PUSH、POP指令

PUSH 寄存器   ;将一个寄存器的数据入栈
POP 寄存器    ;出栈,用一个寄存器接收出栈数据

PUSH 段寄存器   ;将一个段寄存器的数据入栈
POP 段寄存器    ;出栈,用一个段寄存器接收出栈数据

PUSH 寄存器   ;将一个内存字单元处的字入栈
POP 寄存器    ;出栈,用一个内存字单元接收出栈数据

例子:
...
阅读全文 | 评论次数(1) | 浏览次数(797) | 所属类型(汇编学习)
『 查看更多文章 』