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

汇编语言第三章

时间:2018-10-21 21:52:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:family   检测   push   补全   div   注意   16px   [1]   分配   

一、知识点(博主自认为关键的几点)

1.把值存入段寄存器ds:需通过先给数据寄存器值(ax, bx, cx, dx),再送入ds中

如:

mov ax,2000
mov ds,ax

 

2.字数据的存取原则:

字数据的低位字节存放在低地址内存单元;高位则放于高位地址;(小端法)

如:124EH在内存中的存放位置如下:

技术分享图片(且地址为[1])

 

3.关于mov指令值得注意的一点,当作为第二个操作数的常数最高位为a-f时,前面要加0

 

4.SS:SP,与ds相同,ss也不能直接送值

 

二、小测试

栈的使用主要需要注意使用pop和push指令时的越界问题,其他自觉没啥大问题,

此处测试一下利用栈来“保护现场”:

首先,分配栈空间:

技术分享图片

将bx,cx的值分别设为1234H和5678H

技术分享图片

利用push和pop“保护现场”:

技术分享图片

可见,执行完之后,bx,cx的值未发生改变

技术分享图片

 

三、课后检测点3.2

<1>补全下面的程序,使其可以将10000H-10000FH中的8个字,逆序复制到20000H-2000FH中。

mov ax,1000H
mov ds,ax
________
________
________
push [0]
push [2]
push [4]
push [6]
push [8]
push [A]
push [C]
push [E]

思索一番,得出缺失的三行代码为:

mov bx,2000H
mov ss,ax
mov sp,0010H

 

<2>题目不变,将代码改为:

mov ax,2000H
mov ds,ax
________
________
________
pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]

如下:

mov ax,1000H
mov ss,ax
mov sp,0000H

此题只是考察如分配一个满栈和空栈,较为基础,故不作解释

 

汇编语言第三章

标签:family   检测   push   补全   div   注意   16px   [1]   分配   

原文地址:https://www.cnblogs.com/dreamlocker/p/9818130.html

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