E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
汇编语言学习
王爽
汇编语言学习
笔记(六)
第六章包含多个段的程序1操作系统的环境中,合法地通过操作系统取得的空间都是安全的。程序取得所需空间的方法有两种:1)在加载程序的时候为程序分配2)程序在执行的过程中向系统申请。(汇编本种方法不讨论)从规范的角度讲,我们是不能自己随便决定哪段空间可以使用,应该让操作系统来为我们分配,在程序中,定义我们希望处理的数据,这些数据就会被编译、连接程序作为程序的一部分写到可执行文件中,当可执行文件中的程
basketballUncle
·
2014-11-29 22:54
汇编语言
王爽
汇编语言学习
笔记(四) --第一个程序
第4章第一个程序1伪指令1)XXXsegmentXXXends2)end3)assume假设某一个段与某一个寄存器关联2标号一个标号代表了一个地址,3程序返回movax,4c00Hint21H4谁将可执行文件中的程序装载进内存并使它运行?DOS系统中有一个程序command.com,这个程序在DOS中成为命令解释器,也就是DOS系统的shell,command将可执行文件加载入内存,设置CS:
basketballUncle
·
2014-11-29 22:20
汇编语言
32位
汇编语言学习
笔记(11)--条件传送指令
条件传送指令如下:cmoveS,D//等于0时传送cmovzS,D//同cmovecmovneS,D//不等于0时传送cmovnzS,D//同cmovne cmovsS,D//负数时传送cmovnsS,D//非负数时传送 cmovgS,D//有符号大于时传送cmovnleS,D//同cmovgcmovgeS,D//有符号大于等于时传送cmovnlS,D//同cmovgecmovlS,D//有符
swordmanwk
·
2014-11-29 19:00
32位
汇编语言学习
笔记(10)--分析for循环的汇编代码
for循环和while循环差不多,都是条件判断在先。gcc用类似处理while循环的方式先把for循环转换成包含do-while循环的代码,再转换成汇编代码。 示例:intfib_f(intn){ inti; intval=1; intnval=1; for(i=1;i
swordmanwk
·
2014-11-29 18:00
32位
汇编语言学习
笔记(9)--分析while循环的汇编代码
while循环与do-while循环不同,是先判断循环条件。gcc会把while循环转换成如下格式的代码,再生成汇编代码:if(循环条件不成立)gotodonedo{表达式…}while(循环条件) done:... 示例1:intloop_while(inta,intb){ inti=0; intresult=a; while(i<256){ result+=a; a-=b; i
swordmanwk
·
2014-11-24 20:00
32位
汇编语言学习
笔记(8)--分析do-while循环的汇编代码
gcc会把do-while循环转换成如下形式的代码,再生成汇编代码:loop:表达式…t=循环条件if(t) gotoloop 示例1:intdw_loop(intx,inty,intn){ do{ x+=n; y*=n; n--; }while((n>0)&(y0,这时比较y和n jl .L3//如果y
swordmanwk
·
2014-11-23 14:00
32位
汇编语言学习
笔记(7)--跳转指令
正常情况下,指令是按照顺序执行的,跳转指令会导致程序的执行切换到一个新位置。jmp跳转指令是无条件跳转指令。可以是直接跳转,即跳转指令的目的地址通常由标号指明。也可以是间接跳转:jmp*%eax//用eax值作为跳转目的地址。jmp*(%eax)//用eax指向的内存中保存的地址值作为跳转目的地址。 有条件跳转指令如下:jeLabel //相等跳转jzLabel//与je相同jneLabel/
swordmanwk
·
2014-11-23 09:00
32位
汇编语言学习
笔记(6)--设置条件码
条件码保存在条件码寄存器中,用于描述算术和最近逻辑操作的属性。最常用的条件码有:CF:进位标志。ZF:零标志。SF:符号标志。OF:溢出标志。 算术和逻辑操作指令都会修改条件码的值,但是leal指令不会修改条件码的值。此外,cmp指令和test指令也会修改条件码。cmpS2,S1将S1-S2的结果与0进行比较,分别对应大于0,等于0和小于0三种情况,不同比较结果会设置不同的条件码的值。test
swordmanwk
·
2014-11-22 15:00
王爽
汇编语言学习
笔记(二)--寄存器
1字在寄存器中的存储8086CPU可以一次性处理字节(byte)和字(word)两种尺寸数据。2ALAH是独立的寄存器,CPU在执行指令时,认为AHAL是两个不相关的寄存器。若AL=90HADDAL,90H则AX=20H,产生的进位不会存储在AH中。38086CPU读写内存步骤:1)CPU中的相关部件提供两个16位的地址:段地址和偏移地址;2)段地址和偏移地址通过内部总线送入地址加法器;3)地
basketballUncle
·
2014-11-22 13:57
汇编语言
32位
汇编语言学习
笔记(5)--特殊的算术操作
imullS,edx:eax=eax*S(edx表示64位的高32位,eax表示低32位),有符号64位乘法。mullS,edx:eax=eax*S,无符号64位乘法。cltd,eax寄存器中的数,按照符号位扩展到edx,转为8个字节。idivlS,edx=edx:eaxmodS,eax=edx:eax/S,有符号除法。divlS,edx=edx:eaxmodS,eax=edx:eax/S,无
swordmanwk
·
2014-11-22 11:00
菜鸟的
汇编语言学习
笔记
汇编语言学习
笔记1.1机器语言计算机发展初期,人们都是用机器语言进行编程的,这也是人们能实现编程控制计算机的最低级别。那么机器语言是什么样子的呢?
dl23041
·
2014-11-20 14:58
菜鸟的汇编之旅
32位
汇编语言学习
笔记(4)--移位操作
salk,D,D=D>k,算术右移。shrk,D,D=D>>(L)k,逻辑右移。 算术右移是指左边空出来的位填符号位。逻辑右移是指左边空出来的位填0。 示例:/*shift.c*/intshift_left2_rightn(intx,intn){ x>=n; returnx;}gcc-O1-S-m32shift.cshift_left2_rightn: pushl
swordmanwk
·
2014-11-16 22:00
32位
汇编语言学习
笔记(3)--leal和算术运算指令
leal指令用于加载有效地址(loadeffectiveaddress)。leal指令的目的操作数必须是寄存器。实际上leal指令有时用于与加载地址无关的场景。示例:leal6(%eax),%edx//把eax的值+6放入edx中。leal(%eax,%ecx),%edx//把eax+ecx的值装入edx中。leal(%eax,%ecx,4),%edx//把eax+4*ecx的值装入edx中。
swordmanwk
·
2014-11-16 08:00
32位
汇编语言学习
笔记(2)--数据传送指令
汇编指令带有后缀:对于访问一个字节数据类型,后缀是b。对于访问两个字节数据类型,后缀是w。对于访问四个字节数据类型,后缀是l。例如,对于mov指令,有movb,movw,movl。movl$0x4050,%eax //把0x4050这个值装入到%eax寄存器中。movw%bp,%sp //把%bp寄存器中保存的值装入到%sp寄存器中。movb(%edi,
swordmanwk
·
2014-11-15 17:00
32位
汇编语言学习
笔记(1)--简单示例
程序计数器,IA32指令集中通常称为PC,用%eip表示,指示即将执行的下一条指令在存储器中的地址。intaccum=0;intsum(intx,inty){ intt=x+y; accum+=t; returnt;}intp(intx){ returnsum(x,x);}gcc-O1-S-m32code.c-O1表示使用1级优化。-S表示生成汇编代码。-m32,表示生成32位的汇
swordmanwk
·
2014-11-15 17:00
ARM
汇编语言学习
笔记
汇编是对寄存器操作的,不知道一些和主控制器相关的寄存器的作用,根本无法理解某些指令,所以先自己学习相关寄存器和工作模式。下面是《ARM嵌入式体系结构与接口技术(Cortex-A8版)》的学习笔记ARM处理器相关寄存器:ARMCortex-A8处理器有40个32位长的寄存器(1)32个通用寄存器。(2)7个状态寄存器:1个CPSR(CurrentProgramStatusRegister,当前程序状
小白yige
·
2014-09-27 21:37
嵌入式
汇编语言学习
笔记
汇编语言由3类指令组成: 汇编指令:机器码的助记符,有对应的机器码; 伪指令:没有对应的机器码,由编译器执行,计算机不执行; 其他符号:如+-*/等,由编译器识别,没有对应的机器码.
呼噜呼噜睡翻天
·
2014-03-14 18:00
汇编
《30天自制操作系统》第2天
1.
汇编语言学习
与Makefile入门 ORG 0x7C00 ;指明程序的装载地址 (将程序装到内存哪个起始地址上) INT 0x10 ;调用显卡BIOS JMP entry
a379039233
·
2013-12-23 20:00
汇编语言入门学习笔记1
汇编语言学习
笔记 初步认识汇编 1.基本认识 什么是汇编语言? 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。
diaoaa
·
2013-11-05 11:00
学习笔记
IAR ARM中的
汇编语言学习
笔记
静下心来专门复习一下RTOS,拿mqx-lite下手,重新看一遍代码,记录点滴,以备总结。1.预编译(1)常用的预编译指令如#define和#include在汇编文件中也是可以使用的。预编译指令是由预编译器实现的,#define执行是在编译器的符号表中建立新的符号(并赋值,对应于汇编语言的预编译指令EQU),而#include也仅仅是把包含文件的内容进行替换。虽然预编译器本身经常被集成到编译器中,
suyong_yq
·
2013-11-01 18:28
RTOS
汇编语言
arm
IAR
MQX
一段简单c程序的
汇编语言学习
(ubuntu+x86)
c程序代码:#include intmain(void) { inti=0,j=0; for(i=0;i<8;i++) j=j+1; return0; } 汇编代码如下:.file"test_asm.c" 2.text 3.globlmain 4.typemain,@function 5main: 6.LFB0: 7.cfi_startproc 8pushl%ebp 9.cfi_def_cf
kate19930802
·
2013-07-28 17:00
汇编语言学习
笔记(4)
题目描述:编写一程序,从键盘输入一个不超过40个字符的串,然后逆序输出。分析:循环输入,每次输入判断是否为回车,是则结束,否则字符进栈,使用一个寄存器保存输入的字符数,以便输入完成后修改出栈次数,完成逆序。代码:stacksegment dw100dup(?) toplabelword stackends codesegment start: assumess:stack,cs:code mov
wenhuayuzhihui
·
2013-06-18 01:00
汇编语言学习
笔记--第一个汇编程序
assumecs:codeseg ;assume假设某个段与某个特定的寄存器相关联 ;XXXsegment与XXXends共同定义一个段,分别代表段的开始和结束 ;XXX就是段的名称 ;段主要用来存放代码、数据或用作栈空间来使用 ;一个有意义的汇编程序至少要有一个段,用来存放代码 codesegsegment movax,0123h movbx,0456h addax,bx addax,ax
y658t
·
2013-04-14 10:00
windows下32位
汇编语言学习
笔记 第十章 内存管理部分 2
这两天通过写汇编程序,越来越发现汇编很有意思。自己规划每一个寄存器的使用,设计每一个跳转和分支,这不同于使用其他高级语言,所有资源对于编程者都是透明的,让我有一种尽在掌握的感觉,而且每写一个程序都很有成就感,这是我用别的语言写程序所没有的感觉。不管学习什么东西,实践是最重要的,计算机程序设计这种实践性很强的科目更是如此。有的东西看似简单,实际动起手来可就不那么容易了,所以必须要告诫大家,学习计算机
mysouling
·
2013-03-15 10:00
windows下32位
汇编语言学习
笔记 第十章 内存管理部分 1
前面5 6 7 8 9章都是介绍windows界面设计有关的内容,这些内容大概看一下就可以,等需要用的时候再回过头来查。一次性记住的可能性不大。这些章节也没有什么难度,自己看看就可以。我所关心的还是windows系统相关知识,说道界面设置,对RC资源再熟悉做界面还是Delphi,C++builder比较快速。本章介绍了很多windows下关于内存管理的函数,书上有句话说的很好,不要去深究这些函数分
mysouling
·
2013-03-15 10:00
windows下32位
汇编语言学习
笔记 第四章 第一个窗口程序 1 (消息的使用和入口代码)
键盘消息的使用可以使用PostMessage给目标窗口或者控件发送键盘消息,按键消息和字符消息,但是使用SendMessage只能发送字符消息,而不能发送按键消息,想想为什么?开始练习按键消息前,必须要先了解2个函数:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);通过lpClassName窗口注册类名(就是WNDCLASS里的l
mysouling
·
2013-03-15 10:00
windows下32位
汇编语言学习
笔记 第四章 第一个窗口程序 (windows的消息机制)
windows下32位
汇编语言学习
笔记 第四章 第一个窗口程序 1 (windows的消息机制)FirstWindow程序代码很简单,只有一个地方要说下_WinMain 函数里的下面2行代码, 把当前进程句柄赋值给
mysouling
·
2013-03-15 10:00
windows下32位
汇编语言学习
笔记 第三章 使用MASM
windows下32位
汇编语言学习
笔记第三章使用MASM本章讲述的是masm汇编的程序结构,基本语法,定义等,本章这些内容只是汇编指令里比较常用的,在下面的章节将要用到的指令。
猴小新
·
2013-03-15 10:43
汇编
windows下32位
汇编语言学习
笔记 第三章 使用MASM
windows下32位
汇编语言学习
笔记 第三章 使用MASM本章讲述的是masm 汇编的程序结构,基本语法,定义等,本章这些内容只是汇编指令里比较常用的,在下面的章节将要用到的指令。
mysouling
·
2013-03-15 10:00
windows下32位
汇编语言学习
笔记 第二章 准备编程环境
键盘消息的使用可以使用PostMessage给目标窗口或者控件发送键盘消息,按键消息和字符消息,但是使用SendMessage只能发送字符消息,而不能发送按键消息,想想为什么?开始练习按键消息前,必须要先了解2个函数:HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);通过lpClassName窗口注册类名(就是WNDCLASS里的l
mysouling
·
2013-03-15 09:00
windows下32位
汇编语言学习
笔记
windows下32位
汇编语言学习
笔记 第一章第一章 背景知识80x86处理器的存储器4个数据寄存器EAX,EBX,ECX,EDX EAX寄存器所有API函数的返回值都保存在EAX里,注意是返回值,不是返回参数
mysouling
·
2013-03-15 09:00
【
汇编语言学习
01】寻址方式
寻址方式:说明操作数所在地址的方法。指令=操作码+操作数汇编语言=助记符+符号或符号地址数据存储采用"高高低低"的规则1、立即数寻址:movax,123H ;源操作数为一个立即数2、寄存器寻址:movax,bx ;两个操作数都为寄存器3、直接寻址:movax,[2854H] ;(AX)=(DS*16+2854H) 源操作数或者目的操作数为一个有效地址movax
ypist
·
2013-02-05 20:00
ASM
ASM
汇编
寻址方式
Win32
汇编语言学习
笔记>>第三课:变量的定义与使用
一、如何定义变量变量分为全局变量与局域变量。全局变量定义在.data或.data?段内,可以同时定义变量的类型和长度,格式是:变量名类型初始值1,初始值2,……变量名类型重复数量dup(初始值1,初始值2,……)类型名称表示方式缩写长度(字节)字节bytedb1字worddw2双字(doubleword)dworddd4三字(farword)fworddf6四字(quadword)qworddq8
eldn__
·
2013-01-01 22:24
汇编语言
X86
汇编语言学习
手记 -- 汇编和C协同
本文名字虽然是
汇编语言学习
手记,但实际论述了业界真正的C编译器和链接器生成汇编语言的惯例,这些知识点是熟悉汇编语言后使用汇编和C协同真正进行工作的基础.在第三小节给出了一个ELF文件segment/sectiondump
zirconsdu
·
2012-11-10 21:00
windows下32位
汇编语言学习
笔记
windows下32位
汇编语言学习
笔记 第一章 第一章 背景知识80x86处理器的存储器4个数据寄存器EAX,EBX,ECX,EDX EAX寄存器所有API函数的返回值都保存在EAX里,注意是返回值,不是返回参数
adebies
·
2012-11-10 18:00
windows
汇编
汇编语言学习
笔记 ( 第二章)
汇编语言学习
笔记第二章2.0寄存器 1.一个CPU是由 (1).运算器:进行信息处理; (2).控制器:各种器件进行工作; (3).寄存器:进行信息存储;
baizengfei
·
2012-09-19 20:00
汇编语言学习
:Debug的使用
http://www.cnblogs.com/hustlijian/archive/2011/06/04/2072656.html
汇编语言学习
:Debug的使用参考:《汇编语言》王爽著Debug是DOS
happylife1527
·
2012-09-10 22:00
汇编
汇编语言学习
笔记
汇编语言学习
笔记从今天开始,用心学习王爽的《汇编语言》!扎扎实实,勿在浮沙建高楼! —————2012.5.2921:30 第1章基础知识以后用到的知识,以后再说。
无名
·
2012-06-28 15:00
用C语言和汇编语言实现将1个整数分解成几个素数的乘积
希望对c语言学习者和
汇编语言学习
者带来帮助。问题的提出:将一个整数分解素因数根据算术基本定理,任何大于2的正整数都可以表示为素数的乘积,如果不考虑这些素数出现的次序,其表示方式为唯一的。
liangbch
·
2012-06-13 23:00
c
汇编
Integer
input
语言
output
cpu cache 学习
http://www.51dzw.com/embed/embed_63834.html在2004年写的一篇文章x86
汇编语言学习
手记(1)中,曾经涉及到gcc编译的代码默认16字节栈对齐的问题。
hintonic
·
2012-05-22 10:00
【编程语言】基于X86的
汇编语言学习
总结
第一章基础知识1.3汇编语言的组成汇编语言由以下三类指令组成:1)汇编指令:有对应的机器码;2)伪指令:没有对应的机器码,由编译器执行;3)其它符号:如+、-、*、/等,由编译器识别,没有对应的机器码。1.6存储单元存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。1.7CPU对存储器的读写CPU要进行数据的读写,必须和外部器件
yuyu2223
·
2012-04-22 22:00
编程
汇编
存储
语言
编译器
X86
汇编语言学习
操作数指示符
以下为读书笔记,摘抄自《深入理解计算机系统》 汇编程序为程序员提供了更多处理器状态:程序计数器:将要执行的下一条指令在存储器中的地址%eip整数寄存器堆:8个32位的寄存器条件码寄存器:记录控制流状态(if,while)等浮点寄存器堆:8个32位寄存器访问信息:整数寄存器堆的八个寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp栈指针,%ebp帧指针 操作数指示符:立即数
qianjigui
·
2012-04-11 13:00
汇编语言
汇编语言学习
操作数指示符
以下为读书笔记,摘抄自《深入理解计算机系统》 汇编程序为程序员提供了更多处理器状态:程序计数器:将要执行的下一条指令在存储器中的地址%eip整数寄存器堆:8个32位的寄存器条件码寄存器:记录控制流状态(if,while)等浮点寄存器堆:8个32位寄存器访问信息:整数寄存器堆的八个寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp栈指针,%ebp帧指针 操作数指示符:立即数
qianjigui
·
2012-04-11 13:00
汇编语言
汇编语言学习
记录--输入输出字符串
datasegmentbuffdb255;缓冲区,用于存放字符串db?db255dup(?)crlfdb0ah,0dh,"$";回车换行dataends codesegmentassumeds:data,cs:codestart:movax,data;取数据段存入ds中movds,ax leadx,buff;输入字符串到buffmovah,0ahint21h leadx,crlf;输出回车换行mo
晨曦之光
·
2012-03-20 18:00
汇编语言学习
记录--第一个汇编程序
原文链接:http://blog.csdn.net/poechant/article/details/5615192
晨曦之光
·
2012-03-20 18:00
汇编语言学习
笔记——第十四章 端口
汇编语言学习
笔记——第十四章端口1.CPU可以直接读写以下3个地方的数据: a.CPU内部的寄存器; b.内存单元; c.端口。2.访问端口时,CPU通过端口地址定位端口。
龙傲天下
·
2012-01-05 21:00
汇编语言学习
笔记——第十三章 int指令
汇编语言学习
笔记——第十三章int指令1.int指令的格式为:intn,n为中断类型码,它的功能是引发中断过程。
龙傲天下
·
2012-01-05 20:00
汇编语言学习
笔记——第十二章 内中断
汇编语言学习
笔记——第十二章内中断1.8086CPU中4种中断源及中断类型码: (1)除法错误:0; (2)单步执行:1; (3)执行into指令:4; (4)执行int指令。
龙傲天下
·
2012-01-04 21:00
汇编语言学习
笔记——第十一章 标志寄存器
汇编语言学习
笔记——第十一章标志寄存器1.在8086CPU中,标志寄存器的作用: (1)用来存储相关指令的某些执行结果; (2)用来为CPU执行相关指令提供行为依据; (3)用来控制CPU的相关工作方式
龙傲天下
·
2012-01-04 21:00
汇编语言学习
笔记——第十章 CALL和RET指令
汇编语言学习
笔记——第十章CALL和RET指令1.ret指令用栈中的数据,修改IP的内容,从而实现近转移。 retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。
龙傲天下
·
2012-01-04 21:00
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他