
80x86
科学的发展-只不过是读大自然写的代码
科学的发展-只不过是读大自然写的代码
展开
-
Linux下简单C语言小程序的反汇编分析学习笔记
要点记录AT&T格式的汇编指令是“源操作数在前,目的操作数在后”,而intel格式是反过来的,即如下:AT&T格式:movl %eax, %edxIntel格式:mov edx, eax表示同一个意思,即把eax寄存器的内容放入edx寄存器。这里需要注意的是AT&T格式的movl里的l表示指令的操作数都是32位,类似的还是有movb,movw,movq,分别表示8位...原创 2019-04-04 14:55:39 · 266 阅读 · 0 评论 -
8086寄存器学习笔记-SS 寄存器和 SP 寄存器
SS 寄存器和 SP 寄存器:SS 寄存器:Stack Segment (堆栈段寄存器)SP 寄存器:Stack Pointer(堆栈指针寄存器)这两个寄存起是为了访问内存用的,SS为段寄存器,SP为偏移。SP受PUSH和POP两个指令的影响。PUSH SP=SP+入栈数据的字节数POP SP=SP-出栈数据的字节数每次 PUSH入栈的数据是2字节还是1字节呢?取决于入栈的数据?...原创 2019-04-03 14:25:51 · 4300 阅读 · 1 评论 -
8086寄存器学习笔记-变址寄存器(SI,DI)
特性1 通用寄存器,可以保存数据。2 非数据寄存器,不能分开使用3 做地址偏移使用,默认额段寄存器是DS其他没发现什么特性。如下举例例1:SIMOV SI,0 ;初始化偏移地址为 0MOV AX,[SI] ;将段地址为 DS 偏移地址为 SI 的内存单元中的值移入 AX 中MOV AX,DS:[SI] ;将段地址为 DS 偏移地址为 SI 的内存单元中的值移入 AX 中M...原创 2019-04-03 13:25:35 · 6608 阅读 · 0 评论 -
8086学习笔记-BP寄存器
BP 寄存器(基指针寄存器base):特性1 和BX差不多,都是指针寄存器。2 可以保存数据,也是通用寄存器3 不是数据寄存器,不能将数据分开保存。4 模式使用SS(堆栈段寄存器)做为段寄存器。举例1 假设SS=1000H,且1002内存的内容为112 假设CS=2000H,且2002内存的内容为22①MOV BP,2②MOV AX,[BP] ;将 SS:[BP] 代...原创 2019-04-03 13:11:17 · 5265 阅读 · 0 评论 -
8086寄存器学习笔记-CX 寄存器
CX 寄存器(计数器寄存器count):1 通用寄存器,可用来保存数据2 数据寄存器,可分高低数据保存(CH,CL)3 CPU在每一次执行LOOP 指令的时候,都会做如下两件事。3.1 令 CX = CX – 13.2 如果 CX 中的值为 0 则会跳出循环,继续执行下面的指令。指令说明: INC是自增加操作指令举例11.假设DS的值为1000HMOV BX,0 MOV CX...原创 2019-04-03 12:52:18 · 5912 阅读 · 0 评论 -
8068寄存器学习笔记-BX 寄存器
BX 寄存器:作用1 是通用寄存器,可以保存数据。、2 是数据寄存器,可以拆开两个8位只用(BH,BL)3 特性,作为偏移地址使用。通常和段寄存器配合使用才能确认物理地址。这里假设:1.DS=1000H2 内存1005的内容是1MOV BX,5HMOV AH,11HMOV AH,[BX] 如无特别说明默认使用DS作为段地址。这里AH = 1H(就是1005内存中保存的值)...原创 2019-04-03 12:36:16 · 3503 阅读 · 0 评论 -
8086汇编语言学习笔记:AX在除法运算中的应用
AX:累计寄存器作用一遍用于运输,通常的+,-,*(乘),/(除)运算。默认使用该寄存器做被操作数和结果MOV:赋值指令,相当于通常语音的"="号。AH:AX的高8位Al:AX的低8位DIV:除运算DX:数据寄存器,在这里的价值如下1 当除数为16位时。默认用DX作为被除数的高位。运算完成后用DX保持余数,AX保存商2 当除数为8位时。用AH保存余数,用AL保存商。3 当乘数为1...原创 2019-04-03 11:17:18 · 1982 阅读 · 0 评论 -
80x86学习笔记2
MOV AX,1000H 设置AX(累计寄存器)为1000 MOV DS,AX 将DS(数据段寄存器)设置为1000MOV AL,1 设置AL的值为1MOV BX,0 设置BX(基地址寄存器)为0MOV CX,5 设置CX(计数寄存器)为5 s: MOV [BX],AL 设置BX指向地址的值为1 INC AL AL...原创 2019-04-02 20:18:36 · 147 阅读 · 0 评论 -
80x86寄存器学习
一 通用寄存器1 AX,BX,CX,DX 称作为数据寄存器1.1 AX (Accumulator):累加寄存器,也称之为累加器;1.2 BX (Base):基地址寄存器;1.3 CX (Count):计数器寄存器;1.4 DX (Data):数据寄存器;2 SP 和 BP 又称作为指针寄存器:2.1 SP (Stack Pointer):堆栈指针寄存器;2.2 BP (Base P...原创 2019-04-02 20:04:51 · 410 阅读 · 0 评论 -
语言的演变-汇编到c语言的演变
语言的演变-汇编到c语言的演变汇编到c语言的最多变化在于,以函数为单位的调用关系。那么这个调用关系在汇编下是怎么体现的呢?具体来说:c语言的函数关系在汇编下变成了什么?栈就是这个变化的关键,对的变化就体现了函数的调用关系。没一个新函数的调用意味这一个新栈的建立。一个函数调用的结束有就伴随这栈的结束。关于函数的调用和返回,这里解释一下以下几个命令。call :大家都指针,指令的...原创 2019-04-11 15:50:25 · 390 阅读 · 0 评论 -
计算机基本原理学习笔记
linux操作系统学习-微指令程序执行模拟80x86寄存器学习80x86学习笔记28086汇编语言学习笔记:AX在除法运算中的应用8068寄存器学习笔记-BX 寄存器8086寄存器学习笔记-CX 寄存器8086学习笔记-BP寄存器8086寄存器学习笔记-变址寄存器(SI,DI)8086寄存器学习笔记-SS 寄存器和 SP 寄存器8086寄存器学习笔记-DS 寄存器和 ES 寄存器...原创 2019-04-05 19:59:23 · 328 阅读 · 0 评论 -
8086寄存器学习笔记-DS 寄存器和 ES 寄存器
DS 寄存器和 ES 寄存器:DS 数据段寄存器(Data Segment)ES 附加段寄存器(Extra Segment)特点1 属于段寄存器,不能直接保存数据,只能通过其他的段寄存器保存数据。2 他们两个一个没有明显的区别,但是DS 是其他指针寄存器的默认段寄存器。(BX,BP,SI,DI)举例ASSUME CS:CODESCODES SEGMENTSTART:MOV AX...原创 2019-04-03 14:36:26 · 7237 阅读 · 3 评论