汇编语言
1.1.1
汇编语言有3类指令组成:
- 汇编指令,机器码的助记符,有对应的机器码
- 伪指令,没有对应的机器码,由编译器执行,计算机不执行
- 其它符号,如加减乘除
寄存器:
CS和IP 这两个寄存器指向的地址是CPU将要执行的指令,其中,CS寄存器是段地址,IP是偏移地址。
栈顶也有两个寄存器指向栈顶的地址,它们是段寄存器SS,寄存器SP,其中,SS这个寄存器放着的是栈顶的段地址,SP这个寄存器放着的是栈顶的偏移地址
1.1.2
汇编语言的几条汇编指令和一知识
Mov 指令
mov ax,bx 代表的意思是,将bx的值给ax,相当于ax=bx
mov ax,3F56H 是说将3F56H这个值给到ax,相当于ax=3F56H
Add 指令
这个是相加的指令
add ax,bc 相当于 ax = ax+bx
sub 指令
这个是相减的指令
sub ax,bc 相当于 ax = ax-bx
CS和IP
CS和IP都遵循CSx16+IP=CPU接下来将要执行的指令的地址
CS和IP是CPU接下来执行指令的地址
jmp 指令
jmp 段地址:偏移地址
jmp 21E3:3 代表的意思是:CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令
jmp 3:0B16,CS=0003H,IP=0B16H,CUP会去00B46H处读取指令
jmp 寄存器
jmp ax, (注,这里没写错,逗号后面就是没有)这样写的话会修改CS,IP中IP的值,会把ax的值给到IP,比如ax=0003H而在没有执行这条命令之前呢,CS=3C21H,IP=1AF5H,在执行完之后会变成,CS=3C21H,IP=0003H,相当于 mov IP,ax
1.1.3 DOS中的Debug
在Debug中有几个功能
R 可以查看和改变寄存器的内容
D 查看内存中内容
E 改写内存中的内容
U 将内存中的机器指令变成汇编指令
T 执行一条机器指令
A 以汇编指令的格式在内存中写入一条机器指令
使用R指令来修改寄存器值
-r 寄存器的名称,当出现:时,后面输入的值就是你要将寄存器修改的值,可以使用-r来查看
使用D来查看内存中的内容
- 可以直接输入d来查看预设的内存
- 可以输入d 段地址:偏移地址
- 可以输入d 段地址:开始的偏移地址 结束的偏移的地址
- 当我们输入了段地址和偏移地址去查看了某一段内存之后呢,继续输入d可以查看之前段地址偏移地址后的内存
- 注意,它分为了3部分,前面那部分呢是,段地址和偏移地址组成的,中间的那部分是它的16进制,在后面那部分,是前面16进制转换为ASCII的字符,我截图的部分,目前因为没有数据,所以是……,在中间部分呢,有一个 – 这个告诉我们说,前面是0-7后面是9-16
使用E来改写内存中的内容
- 在上面可以看到把1000:80到1000:88的内容修改为了1-9,还可以和第二张图片一样,一个一个的去设置,小数点后面的是你想设置的值,只需要设置好了之后,按一下空格,进去下一个设置,如果不输入值,直接按空格,等会不对这个内存进行改写
1、还可以用这样的方法进行修改
U指令
这样就可以把机器语言翻译为汇编语言
T指令
输入-t之后呢,会执行CS、IP指向的指令,每输入一次,就执行一下
A指令
这个便是A指令,就是说你这边输入汇编的指令,它会帮你转为机器指令,如果你编辑好了之后呢,还没有满足你的需要可以继续输入a来编辑后续的东西
1.1.4 DS
在寄存器中有一个寄存器叫DS,DS这个寄存器呢,是一个段地址寄存器。
为了解释清楚这个段地址的寄存器,看下面的几条指令:
mov ax,1000
mov ds,ax
mov al,[0]
这三条语句是说把1000:0这个地址的内存单元的值给al
第一条指令是把,1000这个值给ax,然后又把ax的值给了ds,mov al,[0] 这里的[0]是内存地址的偏移地址,它的段地址是ds
mov al,[0]这里[0]是偏移地址,那它的段地址是那个呢?一般使用mov获取某个内存单元的值的时候,它的段地址是ds这个寄存器的值,因为ds是一个段地址的寄存器,我们可以看到前面两个指令是有点折腾的,没有将1000H这个值直接给ds,那是因为不允许直接将段地址给ds,只能代换一个。
1.1.5 两个单元
一个字型数据占用两个单元
1.1.6 栈
栈,先进后出
有关于栈的两个寄存器SS和SP
栈顶的地址是从高地址往低地址去的,10010->10000这样的
入栈的时候地址是减的,出栈的时候地址是加的
假如栈的空间为10个,如果超出栈的控件呢,假如是继续往栈里面添加数据的时候,栈会自动去减,将接着的地址给占用(不是栈的空间哦)并且覆盖这个位置原本的数据
标签:汇编语言,IP,地址,指令,寄存器,CS,ax From: https://www.cnblogs.com/zytlk/p/17685789.html