初学(一):不积跬步,无以成千里 【基础知识必备】
2011-04-02
写在前面:
所谓汇编,以前一直以为汇编是0和1组成的代码神马的,不过幸好没人问,不然就闹大笑话了。
其实,自己想写的也不完全是汇编技术方面的总结,只是想记录自己在学习汇编的路程中,需要注意的重点知识,就当做知识框架,还有一些自己菜菜的问题,学习心态的转变,以及由学习汇编产生的一些想法和思路的拓展。
用的编辑器是Masm for windows 2011,和win-masm。
主频:芯片用的主时钟频率,=>计算机运行速度。由于处理器体系结构差别,同样主频产生不同速度。
地址总线:访问存储器的最大范围。20位,可访问2^20个存储单元,即1M。32位=4G个存储单元。
层次结构的存储器组织:高速缓存储存器(cache) 主存储 外存储
8086只有实模式,80286及其以上有保护模式。在保护模式下,机器可提供虚拟存储的管理和多任务的管理机制。
*硬盘属于 输入输出子系统,而memory是说我们usu say 内存。
software = 系统(core: OS(core:monitor常住监督程序)) + 用户
monitor 开机存于内存,从用户接受命令,使操作系统执行相关动作。
I/O driver,file management,text editor,translation就不罗嗦了。
CPU=算数逻辑部件ALU(arithmetic logic unit)+控制逻辑+工作寄存器
AX(accumulator,I/O外部传送),BX(基址寄存,base)
CX(count移位、LOOP、串处理:隐含的计数器),DX(data,+ax做高位)
SP(stack pointer)、BP(base pointer)=>+SS存储器寻址,偏移地址
DI(destination index目的)、SI(source 源变址)=>+DS存储器寻址,偏移地址;自增或自减,便于变址;串处理:SI+DS数据段,DI+ES附加段 寻址
IP(instruction pointer+CS,指向下一条指令,控制寄存器)
FLAGS(or PSW,程序状态寄存器:条件码、控制标志、系统标志)
条件码:OF(OV/NV) SF(sign PL/NG) ZF(ZE/NZ) CF(CY/NC) AF(辅助C:AC/NA) PF(奇偶:PE/PO odd) ;1/0
(略)系统标志:TF(-t,陷阱) IF(中断 1允许中断) IOPL(I/Oprivilege) NT(嵌套任务) RF(重启) VM(虚8086) AC(对准检查方式位 1,2,4,8)。。。。
CS(code) DS(data) SS(stack) ES(extra) .386 FS GS (extra)
偶地址访问,按字读取,奇字节访问分两次,内容取之不尽,可重复取出
8086地址总线20位,存储器分段(64K),段首地址不任意,1M = 64段
CS(IP) SS(BP,SP) DS(BX,DI,SI,立即数) ES(DI串指令) .386 FS GS(NONE)
Base:段的起始地址 memory16MB内存中任何位置 80286:24 80386:32
粒度位 G =0/B:1B-1MB; =1/PAGE:1*4KB-1M*4KB
Acess right:8位 说明该段在系统中的功能,控制信息
P 存在位:=0装入物理存储,基地址和界限值有效;=1未装入,无效
DPL 描述符特权级字段 2位 0-3(H) 保护模式:特权测试
便于使用外设:BIOS(只读存储器ROM) DOS(开机时由磁盘装入存储器)
① 立即寻址方式(代码段中),②寄存器寻址方式(通用寄存器)
EA = 基址BX/BP+(变址SI/DI×比例因子1/2/4/8)+ 位移量16N/32 1/2/4/8
③ 直接寻址方式 MOV AX,DS:[2000H] 在编辑器中必须加段名,否则是立即数
MOV AX,[BX] []只能是BX,BP(SS),SI,DI 32:通用register ESP EBP(SS)
COUNT DW 1,2,3,4 ;注意count是dw,所以用ax;如果是db,需要用ah
常用于对于二维数组的寻址,为堆栈处理提供了方便,BP可以指向栈顶
⑧ 比例变址寻址方式 2,4,8字节的数组,可用比例因子直接转换下标为变址值
与转移地址有关的寻址的方式:确定转移指令以及CALL指令的转向地址
转向当前IP内和指令中指定的8位(短跳转)或者16位(近跳转)位移量之和
JMP NEAR PTR PROGIA ;16 PROGIA是偏移地址
JMP WORD PTR[BX+TABLE+位移量] ; WORD PTR转向地址是字的有效地址
JMP FAR PTR NEXTOUTING ;.386修改EIP和CS的内容
JMP DWORD PTR[INTERS+BX] ;直接变址寻址方式(存疑)
初学(一):不积跬步,无以成千里 【基础知识必备】相关推荐
- 不积跬步无以至千里[转]
不积跬步无以至千里<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...
- 熊军:不积跬步 无以至千里 技术路上没有捷径
大家好,今天是一周新的开始,继续给大家带来ORACLE ACE的人物采访.今天的采访嘉宾是熊军先生(ID:magic007),熊军先生一直从事Oracle数据库专业技术服务工作,有近10年的Oracl ...
- oracle左补全函数,Oracle 左侧补齐函数lpad 函数 (不积跬步,无以至千里)
Oracle 左侧补齐函数lpad 函数 (不积跬步,无以至千里) (2017-10-08 16:24:41) 函数介绍 lpad函数从左边对字符串使用指定的字符进行填充.从其字面意思也可以理解,l是 ...
- 积跬步而至千里,积小流而成江海
2011年2月16日,开通了CSDN的博客,坚持每隔一段时间写一写文章,把自己在工作中碰到的一些问题摊上来讨论讨论,同时也为以后碰到同类问题提供快速检索. 深以为技术的积累不是一天两天的事,冰冻三尺非 ...
- 【无标题】积跬步,以致千里;积小流,以成江海。
1.自我介绍 大家好!我是来自西安工程大学计算机类的大一学生.上学期已经学习了C语言,但是发现自己的代码编程能力并没有多大提升,理论知识基础也还不够扎实.之前也在github中提交过代码.但是没有在C ...
- 劝学:不积跬步,无以至千里,不积小流,无以成江海.
领略古人智慧. 不积跬步,无以至千里,不积小流,无以成江海.骐骥一跃,不能十步,驽马十驾,功在不舍.--<荀子·劝学>
- 不以跬步无以致千里——Day1
反转链表 题目面试描述:输入一个链表,反转链表后,输出新链表的表头. 示例1 输入: {1,2,3} 返回值: {3,2,1} 解题分析: 1.定义一个前驱节点pre,初始值为null,在定义一个cu ...
- gcc 优化选项 -O1 -O2 -O3 -Os 优先级,-fomit-frame-pointer(不积跬步无以至千里)
-fomit-frame-pointer 在优化时候被启用,带来了效率的提升.看到一篇比较详细记录编译选项的文章,转发一下,同时给自己作一下备忘. 少优化->多优化: O0 -->> ...
- 不积跬步无以至千里,我与CSDN不平凡的2021年
文章目录 一.前言 二.收获 2.1 CSDN热搜博客 2.2 CSDN年度回忆录 2.3 入住CSDN讲师 2.4 B站千粉UP主 2.5 新星计划第二季上榜 三.学习 四.改变 4.1 自己的定位 ...
- 不积跬步 无以至千里:我是如何进行“精实创业”的
编者按:本文由轻博客Catfan创始人黎言卓撰写,他的创业就是一个人在战斗.他目前的身份包括程序员,美工,设计师,翻译,管理员.Catfan运营到现在差不多快两年了,但总开支只耗费了不到5,000元. ...
最新文章
- python爬虫实例解析-Python(爬虫)- 动态加载案例分析
- HDU 1711 Number Sequence(算法验证)
- File类及相关方法介绍
- springcloud 与springboot的依赖关系以及版本的选择
- 面向对象,面向服务(转)
- vs项目中头文件(.h)静态库(.lib)和 动态库(.dll )的路径和配置
- html表格按钮相对位置不变,表格中如何使td或div相对定位在某一行上面
- python中的Lambda表达式/函数
- 6-1 二叉搜索树的操作集 (30 分)
- Qt Pro语法总结
- 关闭linux系统命令是什么,linux shutdown关闭系统命令使用介绍
- VSS的基本使用操作介绍
- ignite mysql 持久化_2 ignite关键特性
- python图片变清晰的软件_Python功能确实非常强大!不止PS可以美化照片Python也可以!满分...
- 《腾讯传》三、马化腾与“幸运女神”那些令人脸红的事
- 湖南师范大学学科综合评价计算机,师范类高校自主招生/综合评价相关问答,2020届参考...
- ADS1115 应用指导
- 使用IMS搭建LMS系统(Logistics Management System 物流管理信息系统)
- PythonJava版【LeetCode】简单题答案整理01
- 【求助】BEXCEL文件如何编辑?