汇编
_taylorZ
成就感源于克服困难,要自信,仰望星空,脚踏实地
展开
-
用编译器写的mov ax,[0]指令,执行的实际上是mov ax,0
学习汇编,不像学习c,c++,java等等一样,可以一开始就来个Hello world,得先熟悉相关寄存器,指令,在跟着小甲鱼的教学中,说用编译器写指令mov ax,[0]实际上,执行的是mov ax,0 感觉很奇怪,之前在debug上执行mov ax,[0],是将段地址为ds,偏移地址为0的物理地址的内存单元处的数据传送给ax,所以就自己测试了下,首先用debug看看: 顺便说一下,de原创 2017-04-10 16:00:47 · 12981 阅读 · 0 评论 -
一个小程序
书中遇到这样一个问题,令人眼前一亮的是第二种解法,看题:编程,向内存0:200~0:23f依次传递数据0~63(3fh),程序中只能使用9条指令,9条指中包括“mov ax,4c00h”和“int 21h”。这不很简单吗,设置好ss,sp,循环次数,然后循环push就行了,下面是传统的做法:assume cs:codecode segmentstart: mov ax,20h原创 2017-04-15 09:35:05 · 526 阅读 · 0 评论 -
关于汇编的div指令
div指令使用感觉比较麻烦,需要注意几点: 1:除数为8位或者16位(即字节型或字型),在寄存器或内存单元中 2: 被除数在AX 或者 AX和DX中( 注意,后面是AX和DX,AX存放低16位,DX存放高16位) 除数 被除数 8位 16位 16位 32位(AX和DX)与此对应原创 2017-05-07 11:46:54 · 34660 阅读 · 2 评论 -
一些转移指令
转移指令 # 8086cpu的转移指令分为以下几类: * 无条件转移指令(如:jmp) * 条件转移指令 * 循环指令(如:loop) * 过程(相当于函数) * 中断 # 操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址 a. 无条件转移: # jmp为无条件转移,可以只改变IP,也可原创 2017-05-08 13:24:00 · 1582 阅读 · 0 评论 -
汇编中一些简单的知识
下面的笔记是根据鱼c工作室里的汇编教学视频里的总结的,方便复习1: Debug的使用: 配置好DosBox后,打开运行,输入e:,回车(之前配置的)。然后就可以使用Debug了2: 命令: .R命令查看、改变cpu寄存器的内容 执行后,会看到寄存器的内容,然后输入r ax,就可以在下面输入值,ax就会是改变后的值. D命令查看内存中的内容. E命令改写内存中的内容原创 2017-06-04 15:27:24 · 992 阅读 · 0 评论