汇编语言第三章
Posted dreamlocker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言第三章相关的知识,希望对你有一定的参考价值。
一、知识点(博主自认为关键的几点)
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
此题只是考察如分配一个满栈和空栈,较为基础,故不作解释
以上是关于汇编语言第三章的主要内容,如果未能解决你的问题,请参考以下文章
[vscode]--HTML代码片段(基础版,reactvuejquery)
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段