鱼C论坛

 找回密码
 立即注册
查看: 2126|回复: 4

[学习笔记] 《零基础入门学习汇编语言》第四十三讲

[复制链接]
发表于 2017-8-10 00:29:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2017-8-10 00:57 编辑

越努力,越幸运。欢迎大家来看我的笔记 小白刚学,不对的请各位大佬指正,谢谢

唉~这几天被暑假工辞职的问题弄得焦头烂额,都静不下心来学习了。还好明天是工作最后一天了,希望有个好的结果

一、操作符offset
(1)操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。
(2)比如下面的程序:
     assume cs:codesg
codesg segment
   s: mov ax,bx           ;(mov ax,bx 的机器码占两个字节)
      mov si,offset s
      mov di,offset s0
      mov ax,cs:[si]
      mov cs:[di],ax
s0: nop                     ;(nop的机器码占一个字节)
      nop
codesg ends
ends

(3)通俗的讲就是获取标号处的指针

二、jmp指令之段内短转移:jmp short 标号
(1)jmp为无条件转移,可以只修改IP,也可以同时修改CS和IP;
jmp指令要给出两种信息:
转移的目的地址
转移的距离(段间转移、段内短转移,段内近转移)
       
(2)段内短转移:jmp short 标号(转到标号处执行指令)
这种格式的 jmp 指令实现的是段内短转移,它对IP的修改范围为 -128~127,也就是说,它向前转移时可以最多越过128个字节,向后转移可以最多越过127个字节。

(3)其实还是jmp,就是偏移的范围有一个限制而已。

三、jmp short s指令的读取和执行过程:

1.png
(1)(CS)=0BBDH,(IP)=0006,CS:IP指向EB 03(jmp short s的机器码);
(2)读取指令码EB 03进入指令缓冲器;
(3)(IP)=(IP)+所读取指令的长度=(IP)+2=0008,CS:IP指向add ax,1;
(4)CPU指行指令缓冲器中的指令EB 03;
(5)指令EB 03执行后,(IP)=000BH,CS:IP指向inc ax。

四、jmp指令之时段内近转移:jmp near ptr 标号
(1)总体基本与段内短转移相同,就是位移范围变大,变为16位的位移。
(2)16位位移=“标号”处的地址-jmp指令后的第一个字节的地址;
(3)near ptr指明此处的位移为16位位移,进行的是段内近转移;
(4)16位位移的范围为
   -32769~32767,用补码表示;
(5)16位位移由编译程序在编译时算出。

五、依据位移进行转移的jmp指令

(1)就是程序运行的具体步骤和方法方式
2.PNG

(2)这之中想必最困扰大家的就是ip为什么变为F6了,应该是-10啊? 在教程中小甲鱼也讲了F6是补码~且F6就是-10(一脸懵逼有没有
(3)对于补码我特意去看了小甲鱼后面补发上来的补码教程。如何得到补码?大致是这样:
0.开头的第一个字母为0就是为正数,为1就是为负数
1.首先为原码,例如为:00000011(十进制为3没毛病把)
2.取反(也就是反码),则为:11111100(用1的例子取得)
3.反码加1得到补码,则为:11111101(这个就是补码啦,为:-253)

(4)
再看题中的F6为补码,表示为:11110110,减1得到反码:11110101,取反得到原码:00001010(十进制为10哟~因为前面为负数,所以最终为-10)



谢谢小甲鱼带来的视频教程,感谢!!


   
本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记 小白刚学,不对的请各位大佬指教,谢谢

评分

参与人数 1鱼币 +6 收起 理由
小甲鱼 + 6

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-10 12:23:36 | 显示全部楼层
怪不得你这几天去那里去呢。   兼职的话,个人建议你去超市之类的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 22:58:49 | 显示全部楼层
我是大神哥哥 发表于 2017-8-10 12:23
怪不得你这几天去那里去呢。   兼职的话,个人建议你去超市之类的。

我那个兼职是当打印机电脑维修售后的,是私人老板,所以不怎么好辞职
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 23:00:31 | 显示全部楼层
我是大神哥哥 发表于 2017-8-10 12:23
怪不得你这几天去那里去呢。   兼职的话,个人建议你去超市之类的。

发现你的学习进度和我一样了,你可是又复习了一遍,厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-11 15:12:54 | 显示全部楼层
shuiyu 发表于 2017-8-10 23:00
发现你的学习进度和我一样了,你可是又复习了一遍,厉害

学习进度不重要,主要是建立起一种编程思维。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表