![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
cb414
这个作者很懒,什么都没留下…
展开
-
小白的汇编之路(八)----数据处理的两个基本问题
1,前言学习王爽老师的《汇编语言》一书所做的记录2,数据处理的两个基本问题涉及到数据处理、运算,就不可避免的需要解决两个问题:处理的数据在什么地方要处理的数据有多长2.1,bx,si,di,bp在8086CPU中,只有这4个寄存器能用在[……]中进行内存单元的寻址。但要注意它们之间的搭配# 正确的搭配mov ax,[bx]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp]mov ax,[bp+si]mov ax,[bp+di]# 错误的搭配原创 2020-09-03 10:02:14 · 176 阅读 · 0 评论 -
小白的汇编之路(七)----更灵活的定位内存地址
1,前言学习王爽老师的《汇编语言》一书所做的笔记2,更灵活的定位内存地址的方法2.1,[bx+idata]除了可以用[bx]来指明一个内存单元,还可以使用一种更为灵活的方式来指明内存单元:[bx+idata]表示偏移地址为:(bx)+idata;段地址存在ds中所以mov ax,[bx+200]可以描述成这样:(ax)=((ds)*16+(bx)+200)注意:这里的(bx)表示bx寄存器中的值,其他的同理2.2,[bx+idata]的应用将datasg中定义的第一个字符串转换成小写,第二原创 2020-09-02 11:18:33 · 130 阅读 · 0 评论 -
小白的汇编之路(七)----and和or指令
1,前言学习王爽老师的汇编语言一书所做的笔记2,and指令and指令:逻辑与指令,按位进行与运算mov al,01100011Band al,00111011B# 执行结果:al=00100011Bal00111011B&0010001100&010&011&101&001&000&011&111&1通原创 2020-09-01 23:21:14 · 6224 阅读 · 0 评论 -
小白的汇编之路(六)----包含多个段的程序
前言学习王爽老师的汇编语言一书所做的记录安全的空间相信在学习c语言的时候,老师们都会提醒我们野指针很危险,因为它有可能指向一些未知的内存单元去,如果指向的是一些存有重要数据的内存单元,那么一旦对该单元进行数据修改可能会有惊喜。汇编语言也一样,不能随意的对内存单元进行操作,那么该如何使用内存空间?在操作系统的环境中,合法的通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及自己的空间相冲突...原创 2020-08-24 13:27:49 · 165 阅读 · 0 评论 -
小白的汇编之路(五)----[BX]和loop指令
[BX]假如我们要把一个内存单元的内容送入ax,这个内存单元的偏移地址是0,段地址存在ds寄存器当中,可以这样写:mov ax,[0]在上面,我们可以用[0]来表示一个内存单元而要完整的描述一个内存单元,需要两种信息:内存单元的地址内存单元的长度(类型)在上面的例子中:[0]表示单元的偏移地址,段地址存在ds寄存器中;而单元的长度(类型)可以由具体指令中的其他操作对象(比如说寄存器)指出(对于这一点,看下面的例子)# 将偏移地址为0,段地址存在ds中的内存单元,长度为2个字节,送入原创 2020-08-23 13:38:21 · 195 阅读 · 0 评论 -
小白的汇编之路(四)----assume
前言之前在纠结有关assume的问题assume cs:codesg...#assume是否有将codesg段的地址传给cs寄存器#如果有,是怎么做到的#如果没有,那cs的值怎么办无奈只能上网求助,在浏览了一些博客之后终于有了一些发现本文仅是记录,对于assume的作用,有一部分是出自自身的猜测,所以可能会与事实不符;若有不符,请您不吝赐教,您的指点就是我的荣幸!assume...原创 2020-03-09 21:19:32 · 941 阅读 · 0 评论 -
小白的汇编之路(四)----程序的执行
前言此章较为简略源程序从编写到执行第一步:编写汇编程序过程:使用文本编辑器编写汇编源程序 结果:产生了一个存储源程序的文本文件;第二步:对源程序进行编译连接过程:编译程序对源程序进行编译;产生目标文件。连接程序对目标文件进行连接 结果:产生了可在系统中直接运行的可执行文件可执行文件包括两部分:程序(机器码)和数据(定义的数据);相关的描述信息(程序大小,占用的内...原创 2020-03-07 22:08:43 · 181 阅读 · 0 评论 -
小白的汇编之路 (三)----栈
小白的汇编之路 (三)下前言这一部分将要涉及到栈,这部分假设读者对栈有一定的认识。栈栈是一种很有用的“工具”它和队列区别在于队列是先进先出,栈是先进后出CPU中的栈机制在前面我们学过,栈也是一种段,它的段地址存在SS寄存器中,偏移地址存在SP寄存器中,SP我们可以理解为栈顶指针8086CPU中对栈的操作,例如压栈(PUSH),出栈(POP)都是以字为单位的。如下图:假设我们把1...原创 2020-01-17 18:50:40 · 147 阅读 · 0 评论 -
小白的汇编之路(三) ----寄存器访问
小白的汇编之路(三) ----寄存器访问前言上回我们学会了怎么对寄存器进行赋值,而在汇编程序中,对寄存器的访问,对内存单元的访问必不可少。在开始之前,不妨想一个问题:一个程序,涉及到的数据数量可能不在少数,那我们怎么存储它们?全存进那十几个寄存器中?如果是几十个数据,寄存器够存么?那我们该把这些数据存到哪里去?本文是第三章的第一部分内存中字的存储首先,我们得明白对于内存存储,每个内存单...原创 2020-01-10 12:33:36 · 280 阅读 · 1 评论 -
小白的汇编之路(二)----寄存器
小白的汇编之路(二)----寄存器前言CPU是由运算器,控制器,寄存器等部件组成的对于一个汇编程序员来说,重要的是寄存器,因为汇编程序需要对寄存器进行操作,以达到暂存数据的功能例如:执行3+4,结果存入寄存器a中(其实并不存在a寄存器,在此只是假设)先将3存入a寄存器中,再将a寄存器的值与4相加:mov a,3add a,48086CPU中有14个寄存器,许多寄存器都有其独特的用途...原创 2020-01-08 20:16:06 · 567 阅读 · 0 评论 -
小白的汇编之路
前言因为最近在学习王爽老师的《汇编语言》,所以本文属于学习笔记和回顾。机器语言由于早期的程序设计是使用机器语言(由0,1数字编成的程序代码),使用和改错极不方便,基于此诞生了汇编语言组成汇编指令由三部分组成:汇编指令;(核心)伪指令;其他符号;指令与数据在内存和磁盘中,指令和数据没有任何区别,因为计算机在存储这些信息时,在内存或者磁盘中都是以二进制信息进行存储与处理的例如:...原创 2019-12-01 11:25:23 · 160 阅读 · 0 评论