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
汇编学习``
汇编学习
笔记(8)子程序
说的多不如做的多,子程序的功能十分重要,这篇笔记用来记录书上练习题的代码,加强对子程序的应用。 在屏幕上指定位置显示字符串 在转移指令那一章有个联系是要求在屏幕中间显示不同颜色的字体,当时我写的代码是这样 1 assume cs:codesg,ds:data 2 3 data segment 4 db 'welcome to masm!' 5 data ends 6
·
2015-11-12 17:46
学习笔记
汇编学习
笔记(7)call和ret指令
ret和retf CPU执行ret指令时进行以下两步操作: (IP)=((ss)*16+(sp)) (sp)=(sp)+2 这相当于pop IP CPU执行retf指令时进行以下四步操作: (IP)=((ss)*16+(sp)) (sp)=(sp)+2 (cs)=((ss)*16+(sp)) (sp)=(sp)+2 这相当于pop IP,pop CS,下面这段代码会造成
·
2015-11-12 17:45
学习笔记
汇编学习
笔记(5)阶段性总结
《汇编语言》的1-8章已经学习完毕,这篇笔记是对前面所学的总结,想到哪些知识点就写下来(以下内容都是以8086CPU为基础)。 汇编程序 汇编语言是直接对硬件编程的语言,由机器语言发展而来,采用自然语言的形式书写指令并通过编译器编译为机器语言后由计算机执行。汇编程序主要由两部分组成:指令和数据。 指令 汇编指令:有对应机器码的指令。 1.mov指令:数据传输命令, 和高级语言的赋值
·
2015-11-12 17:43
学习笔记
汇编学习
笔记(6)转移指令原理
这一章主要介绍了转移指令jmp的实现原理,个人感觉还是比较重要的一章,这一章就详细摘录书上的例题及练习,已达到巩固的效果。 offset offset是由编译器执行的指令并没有对应的机器码。 语法:offset 标号 功能:获取标号的偏移地址 书上的例子 1 ;offset 2 3 assume cs:codesg 4 5 codesg seg
·
2015-11-12 17:43
学习笔记
汇编学习
笔记(4)寻址方式
前言 本文是《汇编语言》的学习笔记,对应书中第七章内容,灵活的寻址方式。 这一章节主要通过例题的形式介绍汇编中访问内存的多种方式,新介绍了and和or命令,si,di寄存器。 and and命令是逻辑与命令,按二进制位进行与运算。与运算就是q与q的合取式记为p^q,p和q只要有一个为假,p^q就为假,当且仅当q和q都为真时,p^q才为真。用二进制表示,当且仅当p和q都为0时,p^q才为0,所
·
2015-11-12 17:41
学习笔记
汇编学习
笔记(3)[bx]和loop
本文是《汇编语言》一书的学习笔记,对应书中的4-6章。 汇编程序的执行 要想将源代码变为可执行的程序需经过编译、连接两个步骤,WIN7操作系统下需要MASM程序来进行编译连接工作。将MASM和Debug安装在E:\Software\assembly目录下并新建code文件夹,创建汇编源程序1.asm,使用masm命令编译,link命令连接。 1 ;演示的小程序 2 3 assum
·
2015-11-12 17:40
学习笔记
汇编学习
笔记(2)寄存器
本篇文章是汇编语言(王爽)一书的学习笔记,对应书中的第二、三章,寄存器。 CPU主要是由运算器、寄存器和控制器组成,这一篇笔记主要是寄存器相关知识的学习总结,考虑到通用性,用8086CPU来学习。本次笔记共涉及8086CPU中的7个寄存器(总数14个),分别是AX,BX,CS,IP,DS,SS,SP。 字与字节 8086CPU中,可以处理以下两种尺寸的数据 1.字节:Byte,1Byte=8
·
2015-11-12 17:38
学习笔记
汇编学习
笔记(1)基础知识
本篇文章是汇编语言(王爽)一书的学习笔记,对应书中的第一章,基础知识。 简介 汇编语言,就是直接对硬件进行操作的语言,由机器语言发展而来。早期的程序员都是通过0和1组成的代码来控制计算机的行为,这种方式书写和维护成本巨大,一个hello world都是由几十行0和1组成,错把一个0写成1非常难遇排查,因此,汇编语言应运而生。 汇编语言把难以记忆的机器语言用接近自然语言的形式表现出来,便于书写和
·
2015-11-12 17:36
学习笔记
汇编学习
笔记(14)BIOS对键盘输入的处理
字符的处理 键盘输入的字符一般由int9中断例程从60h端口中读取,并存放在键盘缓冲区中,由int16h例程从键盘缓冲区中读取相应字符,CPU对键盘输入a、shift_a的处理过程如下 1.一开始没有键盘输入,键盘缓冲区为空。 2.按下A键,引发int9例程从60h端口读取A键的通码,然后检测0040:17处的状态字节看是否有shift等控制键按下,发现没有控制键按下,则将A的通码1eh
·
2015-11-12 13:42
学习笔记
汇编学习
笔记(15)综合研究
使用寄存器 TC2.0编译器,编译连接如下代码 用Debug加载,-u命令查看汇编代码,发现根本找不到main函数所在代码段,故用print语句将main函数所在代码段的偏移地址输出方便查找。 可以看到,在程序开头多出两行代码push bp;mov bp,sp这是因为汇编程序将main函数作为子程序处理,须将栈顶指针保存,以便返回。 使用内存空间 程序访问内存空间需要知道两
·
2015-11-12 13:42
学习笔记
汇编学习
笔记(13)直接定址表
不加冒号的数据标号 直接定址表顾名思义就是可以通过给定的数据直接找到所需的地址,主要通过数据标号来实现。 到现在为止我们学习的数据标号的写法都是形如 a: db 1,2,3 其实还有一种写法是这样 a db 1,2,3 看上去只是少了个冒号,但是表示的含义可是大不相同。第一种写法a表示内存单元的地址,而第二种写法a不仅表示内存单元的地址,还表示了内存单元的长度。
·
2015-11-12 13:41
学习笔记
汇编学习
笔记(11)int指令和端口
也就是说,使用int指令可以调用任意的中断例程,例如我们可以显示的调用0号中断例程,还记得在
汇编学习
笔记(10)中我们自己定义了除法溢出的例程么,我们在这里直接调用看看 1 assume cs:codesg
·
2015-11-12 13:39
学习笔记
汇编学习
笔记(12)外中断
概念 外中断,顾名思义是用来处理外部设备输入的中断程序,主要分为两种: 可屏蔽中断:根据标志寄存器IF位的值来判断是否响应,若IF=1,则CPU再执行完当前指令后响应中断;若IF=0则不响应 不可屏蔽中断:CPU必须响应的外部中断,中断码固定为2 键盘输入的处理过程 1.键盘输入:按下一个键产生一个通码,松开一个键产生一个断码,断码=通码+80h 2.引发9号中断:引发9号
·
2015-11-12 13:39
学习笔记
汇编学习
笔记(10)内中断
序 中断,可以理解为"从中间断开",再加上主语就是"从程序流中断开",即CPU不再接着预先定义的代码向下执行,转而去处理中断的信息,有内中断和外中断之分。 内中断 内中断是由计算机内部产生的中断信息,8086CPU有以下4种内中断信息: 除法错误,中断码0 单步执行,中断码1 into指令,中断码4 int指令,中断码int n
·
2015-11-12 13:38
学习笔记
汇编学习
笔记(9)标志寄存器
序 汇编语言中并没有高级语言的if、for语句,通过前面的学习,我们知道在汇编语言中通过loop来实现循环,通过call和ret来实现类似函数的功能。其实,不论是语法还是实现方式都不重要,重要的是要理解这种设计的思想以及为什么要设计这种指令。 举个简单的例子,loop根据(CX)来控制循环次数,从语法上看很简单"loop 标号",但我们在享受这种便捷的同时可以思考一个问题&
·
2015-11-12 13:37
学习笔记
GNU ARM汇编--(六)s3c2440的时钟控制
前面几篇利用GNU ARM汇编控制LED以及ARM的中断处理的设计,对ARM汇编以及体系结构有了一定的认识.后面的
汇编学习
会结合具体的芯片进行,一个为了更灵活熟练的使用汇编,二也是为了通过学习一款具体芯片来提炼出一些有价值的经验
·
2015-11-12 11:04
ARM
汇编学习
备忘-1 DEBUG
工具: 学习工具:emu8086最好用的
汇编学习
环境,有一个非常好用的调试器 window下的命令行工具:DEBUG MASM LINK (也许还有ML.EXE ?)
·
2015-11-11 13:18
debug
汇编学习
笔记---2.3 CS和IP
1,CS和IP是8086CPU中两个最关键的级才能起,指示了CPU当前要读取指令的地址。其中CS表示代码段寄存器,IP表示指令指针寄存器。 在8086PC机器中,任意时刻,假设CS中的内容是M,IP中的内容是N,8086CPU将从内存MX16+N单元开始读取一条指令并执行。 当8086CPU加电启动或者复位后,CS和IP被设置为CS=FFFFH,IP=0000H;当8086PC刚启动是,CPU
Trent1985
·
2015-11-11 12:00
IP
汇编
cs
堆栈平衡
[
汇编学习
]献给汇编初学者-函数调用堆栈变化分析(转自黑客风云) 跟一个朋友谈
·
2015-11-11 11:59
堆栈
汇编学习
笔记---2.2物理地址计算
要理解段地址偏移,首先要了解,为啥要计算段地址。举个例子:8086CPU有20位地址总线,一次可以传送20为地址,达到1MB的寻址能力,但是,该CPU内部又是16位结构,一次处理传输和暂存的地址为16位,只能传送16位的地址,寻址能力只有64K,因此,通常8086CPU采用的是在内部用两个16位地址来合成一个20位物理地址,而这个20位的物理地址计算,就是通过段地址和偏移地址来合成的。当8086C
Trent1985
·
2015-11-07 09:00
汇编学习
笔记---2.1通用寄存器
对于汇编程序员来说,CPU中主要的部件就是寄存器,这也是我们程序员可以用指令读写的部件,通过指令来实现对CPU的控制。以8086CPU为例,它所有的寄存器都是16位的,共有14个寄存器分别是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。以AX为例,寄存器的逻辑结构如下图所示:其中,0-7表示AX中的第八位,用AL表示,8-15表示高八位,用AH来表示,对于
Trent1985
·
2015-11-04 13:00
S5PV210(TQ210)裸机编程
4.1
汇编学习
4.1.1 基础知识 4.1.2 ARM模拟器 4.2 &
·
2015-11-02 13:25
编程
Win32
汇编学习
笔记(四)
前面几篇文章中都没有使用到菜单,对话框等资源,这次就演练如何在应用程序中加入这些资源。我们就以将VC6.0默认生成的Win32程序移植为32位汇编为例。 首先用VC6.0生成一个默认Win32版的Hello,World程序,将Hello.rc,demo.ico,small.ico都拷贝到项目目录下,去掉VC6.0相关的部分,最后Hello.rc修改如下: //Microsoft 
·
2015-11-02 10:27
Win32
Win32
汇编学习
笔记(三)
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
·
2015-11-02 10:23
Win32
Win32
汇编学习
笔记(二)
模仿win32的Hello,World程序: . 386 .model flat,stdcall  
·
2015-11-02 10:22
Win32
汇编学习
笔记(软件使用)
1.debug的使用 功能: R命令用来查看,改变CPU寄存器的内容 D命令来查看内存中的内容 U命令将内存中的机器指令翻译成汇编指令 T命令执行一条机器指令 A命令以汇编指令格式在内存中写入一条机器指令 G命令表明一次直接执行到某点 2.ascii对照表 计算机用ascii码的规则对键盘输入的a进行
·
2015-11-01 14:56
学习笔记
汇编学习
笔记(一)--王爽老师教材
学习汇编的目的 通过学习汇编进行编程,而深入的了解计算机底层的基本工作机理,可以达到随心所欲的控制计算机。在学习的过程中,比如操作系统,编译原理等内容都会影响我们,但是我们只是利用masm等工具进行更好的学习汇编,不要让这些额外的东西分散我们的注意力,要明确我们学习的目的,不要多手抓多手都丢失的厄运!! 第二章知识点 1.物理地址 所有的内存
·
2015-11-01 14:55
学习笔记
Win32
汇编学习
笔记(一)
1,安装masm32,并设置环境变量: @echo off set Masm32Dir = E: \ masm32 set include = %Masm32Dir% \ Include ; %include% ; D: \ dyk \ vc6 \ Include ; D: \ dyk \ vc6 \ MFC \ Includ
·
2015-11-01 13:08
Win32
【管理心得之四十】中文“其他”、英文“other”、日文“その他”..........................................
本阶段的主要任务是: 一、学习理论,收集、
汇编学习
资料,提高自己的素质。....
·
2015-11-01 10:43
管理
动手打造一个
汇编学习
环境
相信大家学习汇编的时候都是在Dos界面下的,输入输入命令,编译--连接--运行,都是很机械的动作。很是使人厌烦。当然你也可以选择一些好的集成环境,我上网看看别人评论,并自己下载试过,RadASM 这个集成环境是很好的。不过太过笨重了,有100多M,并有很多功能我们也用不着。还有MASMPlus也挺好。 在此,我极力推荐一个软件EditPlus, 这是个小巧灵活,很人性化的
·
2015-10-31 13:14
学习
汇编学习
笔记,过程编程习题
Intel汇编语言程序设计第五章编程联系 绘制色彩文本 1 INCLUDE irvine32. inc 2 3 .data 4 str1 BYTE " Enter " , 0 5 color DWORD 1
·
2015-10-31 13:14
学习笔记
汇编学习
笔记之处理器体系结构
在真正接触汇编语言的指令之前最好先了解汇编语言的工作原理和过程,这对于理解汇编指令和读汇编的程序有很大的好处。 1. 处理器结构 寄存器(有限的存储单元),时钟,一个控制单元(CU)和一
·
2015-10-31 10:44
学习笔记
汇编学习
一般学汇编先学计算机组成原理,重点掌握内存寻址,和cpu基本原理。至于总线、接口等概念可以掠过,用到时在查阅。学习的目标是了解原理,所以,如果有重点的认真看书的化,最少要用4个小时。 如果你大概知道堆栈、偏移地址、寄存器的结构这些概念,就足矣正式开始学习汇编了。 以下是我给你的建议: ★学习汇编不要求新, 一本经过时间考验的教材往往能带你进入
·
2015-10-31 09:13
学习
汇编学习
笔记--【bx】和loop
1.[bx]和内存单元 mov ax , [bx] [bx]:表示一个内存单元,它的偏移地址在bx中 (ax) = ((ds)*16+(bx)) 将一个内存单元的内容送入ax中,这个内存单元的长度为2字节,存放一个字,偏移地址在bx中,段地址在ds中 mov al , [bx] 将一个内存单元的内容送入ax中,这个内存单元的长度为1字节,存放一个字节,偏移地址在bx中,
·
2015-10-31 09:23
学习笔记
汇编学习
笔记---(2)基础知识
今天,接着上次,继续学习汇编语言,主要对内存地址空间、主板、接卡口、存储芯片等进行了解。什么是内存地址空间?要搞清楚这个问题,我们首先要知道主板和接口卡。每个PC都会有一个主板,主板上附有核心器件,包括CPU、存储器、外围芯片组、扩展插槽等,它们通过地址总线+数据总线+控制总线相连。接口卡啥作用,说白了就是通过总线接收CPU发送的命令,对显示器、音响等外部设备进行控制。一台PC中主要有两种存储器:
Trent1985
·
2015-10-28 16:00
IL
汇编学习
笔记(一)
今天我开始了 IL 汇编语言的学习,下面都是对一篇文章学习过程的翻译和摘要。 原文: http://www.codeproject.com/dotnet/ilassembly.asp 先从一个 HelloWorld 例子开始: // Test.IL // A simple programme which prints 
·
2015-10-28 08:37
学习笔记
IL
汇编学习
笔记(四)
原文: http://www.codeproject.com/dotnet/ilassembly.asp 创建 Windows Form 程序 下列代码给出一个简单的例子,其中简单的设定了窗体的一些属性,BackColor, Text 和 WindowState. . namespace MyForm { . class p
·
2015-10-28 08:37
学习笔记
【堆栈平衡的说明太有才了】转贴自Jim's blog
[
汇编学习
]献给汇编刚開始学习的人-函数调用堆栈变化分析(转自黑客风云) 跟一个朋友谈堆栈的时候
·
2015-10-27 16:20
Blog
汇编学习
笔记---(1)基础知识
汇编学习
笔记---(1)基础知识本学习笔记仅仅是我自己作为初学者,学习汇编知识的过程记录,本人从事图像处理行业,使用C编程,为了编写更为高效的图像处理程序,于是开始学习汇编语言。
Trent1985
·
2015-10-21 14:00
VC内联ASM
汇编学习
笔记
目的:学习在VC中进行ASM汇编语言程序设计的方法,以提高底层应用能力. 由于在VC中进行汇编不需要额外的编译器和联接器,且可以处理VC中不能处理的一些事情,而且可以使用在C中的变量,所以,非常方便.但是它并不支持所有的MASM宏和数据指示符. 下面的三种方法基本上都可以使用在VC中: __asm { mov al, 2 mov dx,&
·
2015-10-21 12:12
学习笔记
我的
汇编学习
之行(2)-8086寄存器简介
寄存器寄存器是什么呢?其实很简单,寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多,只不过寄存器(这里讨论的寄存器都是CPU中的寄存器,不包括外设上的寄存器)位于CPU内部,而内存位于CPU外部,寄存器比内存可是珍贵得多啊,寄存器是CPU中的稀有资源。8086CPU中寄存器总共为14个,且均为16位。即AX
u013983194
·
2015-09-28 09:00
汇编
我的
汇编学习
之行(1)-搭建环境
搭建开发环境我个人最常使用的是DOS环境汇编,在这里你首先要有CmasmW软件来让你能够编写汇编语言。DOS环境可以使用dosbox,当然我比较喜欢使用BC++的环境模式下的BC,无安装,绿色。下面我将把相关下载链接发布汇编CmasmW软件dosbox你要注意的是你需要对dosbox进行挂载。[autoexec] mountcD:\software\10cmasmW\project\ #Lines
u013983194
·
2015-09-28 09:00
汇编
我的
汇编学习
之路(2):主要术语和概念
所以,让我们开始《我的
汇编学习
之路》的第二部分的学习。术语和概念当我写了第一篇之后,我从不同的读者那获得很多反馈,第一篇中有些部分不明白,这就是本文以及接下来几篇从一些术语的描述开始的原因。
人生想绕几个圈
·
2015-09-05 12:00
汇编
驱动
底层
机器
固件
我的
汇编学习
之路(1):指令
引言我们很多人是开发者,每天写大量的代码,有时也不是糟糕的代码。每个人都能很轻松写下这样的代码:12345678#include intmain(){ intx=10; inty=100; printf("x+y=%d",x+y); return0;}大家都能理解上面这段C语言代码完成的功能,但是…这段代码底层是如何工作的呢?我想我们中间不是所有人都能回答这个问题,我也不能。我认为我可以用
人生想绕几个圈
·
2015-09-05 12:00
汇编
硬件
驱动
底层
固件
汇编学习
网站上的主要资料http://blog.csdn.net/candycat1992/article/details/8123927
big_thief
·
2015-07-21 17:00
汇编学习
转自:http://www.blogjava.net/wxqxs/archive/2009/09/17/277328.html学习汇编前你应该知道的知识1、汇编需要什么工具和程序,到哪里下载?目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。前者是编译程序,后者是链接程序。另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供。将二者
magina3
·
2015-06-07 23:58
汇编学习
笔记3——jmp命令与DEBUG进阶指令
汇编学习
笔记(3)1.若要同时修改CS、IP的内容,可用指令:jmp段地址:偏移地址 2.若想仅修改IP的内容,可用指令:jmp某一合法寄存器 //该指令的作用为:用寄存器中的值修改IP3.DEBUG.exe
hjb2722404
·
2015-05-31 20:00
汇编学习
笔记002——寄存器与DEBUG初次使用
汇编语言学习笔记(2)1.在汇编中,我们面对的就是内存地址空间。而CPU将所有与它相连的外部设备通通看做逻辑上的内存单元。2.在8086CPU中,所有的寄存器都是16位的,可存放2个字节的数据。3.AX,BX,CX,DX四个寄存器都是通用寄存器,为了兼容旧的8位CPU上运行的程序,这四个寄存器每个都可以分为H,L的高8位和低8位独立寄存器来用。4.汇编指令不区分大小写,但一般情况下写成大写5.在进
hjb2722404
·
2015-05-29 11:00
汇编学习
笔记001——基础概念和知识
汇编学习
笔记(1)1.所有存储器的每个存储单元都从0开始;2.CPU对数据的读写,必须有三类信息交互:存储单元的地址:地址信息 器件的选择,读或写的命令:控制信息 读或写的数据:数据信息 3.总线在逻辑上划分为
hjb2722404
·
2015-05-29 11:00
汇编学习
笔记--寄存器(内存访问 1)
内存访问首先要有地址,8086pc中的段地址存放在ds寄存器中(ds和cs是不一样的,cs是定位地址用于读取内存中的指令或者数据,而ds是读取内存中的数据时使用,下面我们会明白区别)将内存中的数据写入寄存器:movbx,1000Hmovds,bxmoval,[0]第一句是把1000H给bx(寄存器),第二句把bx中的值给ds(段地址寄存器),第三句从1000:0H中读取数据给al(寄存器ax的低8
qq_20480611
·
2015-05-19 23:00
debug
汇编
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他