汇编语言
文章平均质量分 70
记录分享汇编语言学习过程
噬霄
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【汇编语言】2.2 更完整的汇编程序
上一章中提到可以使用符号"[ ]"访问内存,里面可以加立即数,就是数字,也可以是使用寄存器间接寻址,使用寄存器间接寻址会在物理电路中实现,所以不是所有的寄存器都可以间接寻址,这里要说的寄存器是 bx 寄存器,它可以间接寻址,它默认的段地址是 ds 段地址。loop指令是循环指令,对应的条件是cx中的值是否为0,如果不为0,loop指令会>.将cx的值减1,再跳到标号处执行,如果为0,则顺序执行下去,语法是 loop + 标号。这句话的含义是申请一个16个字的内存空间,里面存放的数据都是0,从下文来看,原创 2024-12-21 16:43:34 · 448 阅读 · 0 评论 -
【汇编语言】2.1第一个汇编语言程序
标号是一个很重要的概念,在第一个程序中code就是一个标号了,其代表一个地址,在我们写程序时,我们是不会想要算这条指令的地址多少,我们可用通过打标号,让编译器帮我们去算它的地址,在一条指令前打上 “标号名 :” 例如。这条指令是一条伪指令,在编译过程中编译器使用这条指令,并不会翻译成机器语言,含义是,cs段寄存器绑定在code这个标号上,当进入程序时,cs段寄存器的值就是code这个标号地址。伪指令:由编译器执行的指令,辅助编译器完成编译的任务。命令: 单步执行语句,执行当前cs:ip的指令。原创 2024-12-20 17:29:58 · 615 阅读 · 0 评论 -
【汇编语言】1.2内存访问
采用段地址+偏移地址的方法,20位物理地址 = 16位段地址 * 16(10h) + 16位的偏移地址,以16进制数来看,比如地址为20001h的物理地址,我们可以把物理地址写成 2000h * 16(10h) + 0001h 2000h就是段地址,0001h就是偏移地址。在cpu中实现段寄存器,其中存放段地址,在实现地址部件,当需要寻址时,将段寄存器中的段地址 * 16 和 偏移地址相加,偏移地址我由我们直接给出,也可以由寄存器直接给出。它们都是以 操作名 对象1,对象2的形式。原创 2024-12-14 20:24:38 · 1149 阅读 · 0 评论 -
【汇编语言】1.1寄存器
通常我们寄存器的字长等于机器字长,换句话说,cpu内部,一次能处理的数据位数等于一个寄存器的储存量,如果存储器字长是机器字长两倍那么取数据时我是取高字还是低字,还需要地址或者控制信号,其实相当于两个不同寄存器了,一个一个分清楚非常的方便。因为寄存器少,且每个寄存器的功能也明确,我们可以直接用寄存器的名称来访问寄存器,实际上机器指令访问寄存器,也需要相应的地址,编译器可以为我们完成翻译寄存器名字的工作。每个寄存器因为其要使用的功能不同,其在计算机硬件中的连接可能会有差异,在汇编语言的使用上也会有差异。原创 2024-11-19 16:42:22 · 1446 阅读 · 0 评论 -
【汇编语言】前言
到现在为了更多人能编程,为了让编程更容易,有很多的高级语言,但是高级语言距离机器是有点远的,即使学会了高级语言但我们也是不知道它是如何实现的,但是汇编语言是和机器高度接近的语言,有助于我们理解高级语言的实现以及学习计算机的工作逻辑。汇编语言也不是唯一的,机器会设计不同汇编器(将汇编语言翻译成机器语言),我学习的是8086cpu的汇编语言,看到教材是王爽老师的《汇编语言》第四版,用的操作系统是dosbox。本系列记录和分享自己所理解所学的汇编语言,目标是把没学汇编语言之前的讲懂。原创 2024-11-13 20:33:13 · 258 阅读 · 0 评论
分享