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
8086CPU汇编学习
仿照着写个bootloader(四) 中断向量
前阵子看到protues带有
8086CPU
,琢磨着等这边bootloader结束了,尝试一下在protues上仿真。
lixiangminghate
·
2014-12-22 22:00
汇编
Intel
汇编语言
bootloader
[Intel汇编-MASM]栈
1.CPU的栈操作的支持: 1)现代CPU都提供栈的功能,即提供栈的访问功能,指令有push和pop等; 2)
8086CPU
对栈的操作(push、pop等)都是以字为单位的,即16位,因此不得在栈操作中使用非
Lirx_Tech
·
2014-12-16 22:00
栈
masm
intel汇编
王爽汇编语言学习笔记(二)--寄存器
1字在寄存器中的存储
8086CPU
可以一次性处理字节(byte)和字(word)两种尺寸数据。2ALAH是独立的寄存器,CPU在执行指令时,认为AHAL是两个不相关的寄存器。
basketballUncle
·
2014-11-22 13:57
汇编语言
汇编学习
-堆栈与子程序
任何程序在运行过程中都需要使用堆栈,操作系统为每一个程序(进程及线程)设置一个堆栈。在使用高级语言编程时,源程序中使用的函数调用、局部变量都要用到堆栈,由编译器来负责生成有关的机器指令。我的理解,堆栈就是维护当前线程中运行状态的一个数据结构,这种状态包括:需要传递的变量,函数的返回地址,局部变量等等。与堆栈相关的3个寄存器是:SS,ESP,EBP。ESP寄存器中的内容作为堆栈的当前指针。PUSH,
lyyyuna
·
2014-11-17 16:00
汇编
masm
堆栈结构
汇编学习
-分支与循环
在高级语言程序设计中,我们不仅要求程序能够顺序执行,还要求其能够执行不同分支,或者重复执行某些操作。在汇编语言中,同样具有相同的能力,可以由相应的指令来控制程序的执行流程。因为毕竟高级语言都是汇编实现的,只是不直观而已。 转移无条件转移为JMP,类似c语言中的goto。在c语言中,goto是不推荐使用的,会使程序难以控制和理解,但在汇编中,没有相应的if和while语句,只能使用JMP来完成逻辑复
lyyyuna
·
2014-11-11 16:00
二分查找
汇编
masm
汇编语言
NESASM教程总述
该教程由浅入深,简化了NES
汇编学习
过程。在进一步尝试前你几乎必须了解另一种汇编语言,因为本文假设你(哪怕一丁点)基本汇编常识是具备的。例如了解GBA或者Intelx86汇编将对理解基础有很大帮助。
kkk584520
·
2014-11-09 14:00
游戏
编译原理
汇编语言
任天堂
nes
call 和 ret 指令
基于
8086cpu
,虽然有点老,用来学习还是可以的。
wwh578867817
·
2014-10-28 19:00
【汇编语言/底层开发】3、通过寄存器进行内存访问
上篇叙述了
8086CPU
的通用寄存器和代码寄存器的一些东西。仅仅这些是远远不够的,显而易见的一个原因是,如果CPU只是对自己内部的寄存器进行操作,不能同外部数据进行交互,那么将无法完成任何工作。
shaqoneal
·
2014-10-15 10:00
内存
寄存器
汇编语言
汇编
在看这本PDF的时候看了第一章程序点滴和第四章高级语言的原理,发现有必要把
汇编学习
一下,起码能做到能看懂汇编代码那种就可以了,后来就开启了汇编的学习旅程,刚好碰上国庆,外面人多,景点人挤人,所以直接宅在家里了
wojoin
·
2014-10-06 01:46
汇编
c/c++
《汇编语言》第2章
在CPU中:运算器进行信息处理寄存器进行信息存储控制器控制各种器件进行工作内部总线连接各种器件,在它们之间进行数据的传送
8086CPU
有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP
UFO2014
·
2014-09-23 13:00
debug
寄存器
段
Android ARM
汇编学习
(一)
给自己挖了个坑,一切都得从“HelloWorld”开始。 hello.S.data msg: .ascii "Hello, World!\n" len = . - msg .text .globl _start _start: /* syscall write(int fd, const void *buf, size_t count) */
fjyihan
·
2014-08-14 21:55
android
汇编
反
汇编学习
笔记
disassembly由于项目的需要,笔者最近开始学习C++反汇编技术,使用的教材是IDAPro代码破解揭秘,工具是IDAPro。今天主要看了一下反汇编的简介,主要讲了线性扫描算法和递归下降算法这两种反汇编工具主要使用的方法。其中,线性扫描算法的主要算法步骤有五步:1.位置指针指向代码段开始处;2.从指针所指位置开始尝试匹配指令,并得到指令长度n;3.若2成功,则反汇编从指针所指位置向后n个长度的
宇七少
·
2014-08-12 22:00
反
汇编学习
(转:http://www.kuqin.com/assemble/20071122/2492.html)汇编语言和CPU以及内存,端口等硬件知识是连在一起的.这也是为什么汇编语言没有通用性的原因.下面简单讲讲基本知识(针对INTELx86及其兼容机)============================x86汇编语言的指令,其操作对象是CPU上的寄存器,系统内存,或者立即数.有些指令表面上没有操
lovewubo
·
2014-07-18 21:00
汇编入门学习笔记 (八)—— 转移指令
8086CPU
转移行为分为:段内转移:只修改ip段间转移:同时修改cs和ip段内转移按ip修改的范围可分为:短转移:ip修改范围-128~127近转移:ip修改范围-32768~32767转移指令分为:
billvsme
·
2014-07-13 23:00
ASM
汇编
暑假
AT&T
汇编学习
笔记
AT&T汇编和intel汇编的区别(1)在Intel格式中大多使用大写字母,而在AT&T格式中都是用小写字母。(2)在AT&T格式中,寄存器名要加上“%”作为前缀,而在intel格式中则不带前缀。(3)在AT&T的386汇编语言中,指令的源操作数与目标操作数的顺序与在intel的386汇编语言中正好相反。在intel格式中是目标在前,源在后;而在AT&T格式中则是源在前,目标在后。例如,将寄存器e
hu3167343
·
2014-07-10 18:00
汇编
笔记
att
【
汇编学习
(二)】寄存器相关
一、段寄存器:前面的学习,已经知道了
8086cpu
在访问内存时,要由相关部件提供内存单元的段地址和偏移地址,接着送入地址加法器合成物理地址,产生的段地址在cpu的段寄存器中存放着,
8086cpu
有4个段寄存器
CMbug
·
2014-06-12 15:06
菜鸟的汇编学习之路
【
汇编学习
(一)】8086CPU-段地址-偏移地址简要理解
最近刚开始学习汇编,看到了
8086CPU
的寻址方式:物理地址=段地址*16+偏移地址,于是有了如下的一些问题:一、为何
8086CPU
会采用这种寻址方式?
CMbug
·
2014-06-12 15:49
菜鸟的汇编学习之路
GNU ARM汇编--(六)s3c2440的时钟控制
blog.csdn.net/dndxhej/article/details/7685125前面几篇利用GNUARM汇编控制LED以及ARM的中断处理的设计,对ARM汇编以及体系结构有了一定的认识.后面的
汇编学习
会结合具体的芯片进行
yongbudl2012
·
2014-06-02 18:00
第九章 转移指令原理
概况将即可以控制CPU执行内存中某处代码的指令
8086CPU
的转移行为有以下几类: &
listen-raining
·
2014-05-21 00:00
转移指令原理
基于
8086CPU
微处理器的
汇编学习
之PUSH、POP指令
---------------------------------------------栈,是一种数据结构,我觉得栈是抽象的,但是它同样也是实际的,因为它在内存中是连续的内存,只不过人们限制了它的使用:后进先出,学数据结构两年了,现在才理解,实在惭愧。push ax ;I、sp=sp-2 II、取出ax中的数据,放入当前栈顶pop ax ;I、栈顶地址取出数据,放入ax中 II、
liam2199
·
2014-05-07 17:24
push指令
栈空间
基于
8086CPU
微处理器的
汇编学习
之PUSH、POP指令
---------------------------------------------栈,是一种数据结构,我觉得栈是抽象的,但是它同样也是实际的,因为它在内存中是连续的内存,只不过人们限制了它的使用:后进先出,学数据结构两年了,现在才理解,实在惭愧。pushax;I、sp=sp-2II、取出ax中的数据,放入当前栈顶popax;I、栈顶地址取出数据,放入ax中II、sp=sp+2-------
liam2199
·
2014-05-07 17:24
栈空间
push指令
Assembly
基于
8086CPU
微处理器的
汇编学习
之JMP指令
JMP指令:更改CS:IP寄存器的内容,以让CPU从新指定的内存地址开始继续执行指令。 格式: JMP 段地址:偏移地址---------------------------------------------------------CS、IP寄存器: CS:指向CPU将要执行指令的段地址 IP:指向CPU将要执行指令的偏移地址
liam2199
·
2014-05-04 16:58
初学者
汇编语言
计算机底层原理
JMP指令
基于
8086CPU
微处理器的
汇编学习
之ADD指令
ADD指令:把两个数值相加,将结果放到第一个寄存器里面。格式: ADD 寄存器名,数值 ADD 寄存器名,寄存器名 addax,11 addbx,22 PS:清空数据:movax,0000 两者数值的存储容量位数要匹配----------------------------------------------------------------------
liam2199
·
2014-05-04 13:42
初学者
汇编语言
8086
ADD指令
计算机底层原理
基于
8086CPU
微处理器的
汇编学习
之MOV指令
汇编指令:MOV的作用是往某个寄存器中存入数值。格式:mov 寄存器名,数值 数值-->寄存器 mov 寄存器A,存器寄B B-->APS:必须前后位数匹配,如: mov ah,bx ;error ahis8bit,bxis16bit mov ah,bh ;right ahandbhallis8 bit mov cx,dx ;right
liam2199
·
2014-05-03 23:24
内存
初学者
汇编语言
计算机底层原理
MOV指令
基于
8086CPU
微处理器的
汇编学习
之ASCII码表
这节讲关于ASCII码表。1、E开始地址数据 A字符对应的十六进制数为:41 -e6000:000041 -d6000:0000实验结果:--------------------------------------------------------- =号对应十六进制数为:3D -e6000:00013D -d6000:0000实验结果:-----------------------------
liam2199
·
2014-04-22 11:58
汇编语言
ASCII码表
8086CPU微处理器
改写连续内存空间
基于
8086CPU
微处理器的
汇编学习
之内存空间的编辑
对于段地址和偏移地址,大家可以仔细思考,其背后的原理。--------------------------------------------------------------------------------------------我们这节谈内存空间的编辑内存空间的编辑1、Debug E改写内存中的内容 格式: E开始地址数据数据数据数据... E开始地址 然后进入修
liam2199
·
2014-04-22 09:14
debug
汇编语言
计算机内存
8086CPU微处理器
内存空间编辑
基于
8086CPU
微处理器的
汇编学习
之段地址与偏移地址的分析
人的记忆总是不靠谱的,早在几年前就看过汇编语言,由于没有总结下来资料,所以忘记了很多,所以重新梳理下汇编方面的知识,与君共勉。----------------------------------------------------------------------------------------------段地址与偏移地址:范围:00000H-FFFFFHDebug:可以自由查看内存空间的状
liam2199
·
2014-04-22 09:53
汇编语言
8086微处理器
段地址与偏移地址的分析
寄存器
8086CPU
中有一个DS寄存器,通常用来存放要访问数据的段地址。mov指令还可以将一个内存单元中的内
村长kylin
·
2014-04-10 12:00
x86-64
汇编学习
小节
这两天搞了本x86-64汇编的白皮书,还没看完总结一下。最主要的区别,除了大家都知道的位数扩展寻址空间增大外,就是通用寄存器从8个增加到16个。多了r8~r15,不再用字母做名称,改用数字了。说真的,能想出ax,bx,cx,dx,而且每个都是有意义的英文字母的首缩写还真是挺有想象力的。x64虽然性能提升了,但是缺少了原来的浪漫气质。寄存器的数量增加导致了很多编程方法的变化。一个是统一了调用方式,统
thursdayhawk
·
2014-03-04 22:16
x64汇编
“段寄存器”的故事
8086CPU
的数据总线是16位。地址总线的宽度不一定要与ALU的宽度相同。因为ALU的宽度是固定的,它受限于当时的工艺水平,当时只能制造出16位的ALU;但地址总线不一样,它可以设计得
topasstem8
·
2014-02-25 15:00
第二章 寄存器(cpu工作原理)
寄存器等器件组成,这些器件靠内部总线相连8086 cpu有14个存储器,他们的名称为: AX BX CX DX SI DI SP BP IP CS SS DS ES PSW8个通用寄存器2.1 通用寄存器
8086cpu
rebelqsp
·
2014-01-31 19:00
汇编
汇编语言
第二章 寄存器
1月23日 星期四 01时16分00秒 第二章 寄存器(CPU工作原理) 寄存器概述:
8086CPU
listen-raining
·
2014-01-26 10:00
汇编学习
笔记
第一单基础知识小结汇编指令是机器指令的助记符,同机器指令一一对应每一种cpu都有自己的汇编指令CPU可以直接使用的信息在存储器中存放在存储器中指令与数据没有任何区别,都是二进制信息存储单元从0开始,到127结束一个存储单元可以存储8个bit,即8个二进制数据每一个cpu芯片都有许多管脚,物理称为"金手指",这些管脚和总线相连,可以说管脚引出总线,一个cpu可以引出三种总线的宽度就标志了这个cpu
·
2014-01-18 23:00
学习笔记
王爽《汇编语言》第十二章实验——0号中断处理程序
8086CPU
,中断向量表必须放在0000:0000~0000:03FF单元中。 每个中断向量占32位内存地址空间(低十六位为偏移地址(IP),高十六位为段地址(CS))。2.中断过程: (1).
gaohuaid
·
2013-12-31 19:00
中断
汇编语言
汇编学习
经典书籍(完整版)
一Intel格式的汇编(Windows下) 1.王爽-汇编语言(第二版)这是16位汇编打好基础, 作者:王爽出版社:清华大学出版社出版年:2008-4页数:337定价:33.00元装帧:平装ISBN:9787302172284 2.Intel汇编语言程序设计:从16位实模式下BIOS、DOS实模式文本及图形程序设计到32位保护模式的Windows程 序设计,这本书比上面那
simanstar
·
2013-11-03 09:00
编程
linux
unix
汇编语言
嵌入式系统
X86
汇编学习
小结
X86
汇编学习
小结生成汇编代码比如,一个简单的函数://hello.c voidfunc(){}如何得到相应的汇编代码呢?
JK198310
·
2013-10-31 10:00
AT&T汇编语言
本文主要关注在Windows平台下使用gcc进行AT&T汇编语法的学习,通过gcc对C代码进行反
汇编学习
,而不是手动编写汇编代码,目的是能读懂《深入理解计算机系统》,未完…MinGWMinGW是一个在Windows
Bery
·
2013-09-17 13:00
“段寄存器”的故事
8086CPU
的数据总线是16位。地址总线的宽度不一定要与ALU的宽度相同。因为ALU的宽度是固定的,它受限于当时的工艺水平,当时只能制造出16位的ALU;但地址总线不一样,它可以设计得更宽
michael2012z
·
2013-08-05 12:11
linux
it
段寄存器
8086cpu
为什么不能将数值直接送入段寄存器
可能的答案:段寄存器在CPU里,数据寄存器也在CPU里,如果想向段寄存器里写入数值,必须通过数据寄存器,在CPU外部的数据无法直接送给段寄存器。具体硬件原理我也不清楚,貌似是数据总线和数据寄存器相连接,不直接和段寄存器链接,所以写入数据必须通过数据寄存器。 立即数在指令执行前是在指令缓冲器里的,比如MOVAX,0在执行前,0在指令缓冲器里,而指令缓冲器和段寄存器是没有连接的,就是没有通路,所以指令
wxqian25
·
2013-07-26 18:00
读王爽老师汇编语言笔记---标志寄存器和内中断
内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同)具有三种作用:1、用来存储相关指令的某些执行结构2、用来为cpu执行相关执行提供行为依据3、用来控制cpu相关工作方式这类特殊的寄存器在
8086cpu
max_min_
·
2013-07-14 15:00
读王爽老师汇编语言笔记---转移指令的原理和call,ret指令
8086cpu
转移行为:1只修改IP时,称为段内转移,比如jmpax2同事修改CS和IP时,称为段间转移,比如jmp1000:0由于转移指令对IP的修改范围不同,段内转移又分为短转移和近转移 短转移IP
max_min_
·
2013-07-10 21:00
ARM的
汇编学习
如果你还是学习电子通信的学生又或者是从事嵌入式电子通信工作的工程师、助理工程、实习生、打杂员,笔者想你也曾经对汇编有着复杂的恐惧,甚至是这一恐惧是大学里学《微型计算机技术》开始的。但是就笔者浅薄的工作经历看来,如果你能掌握或者退一步说能看懂汇编,那你才能享受到作为一名底层硬件程序员的乐趣。试想一下用汇编任意操纵一款ARM内核处理器的寄存器、内存空间、外设空间,把它玩弄于手掌之中,这样是不是很有成就
wuyuwei45
·
2013-07-08 17:00
8086 CPU 寻址方式
8086CPU
寻址方式灵活。有以下几种 idata表示常量 1.
daiyutage
·
2013-06-20 22:00
8086
寻址方式
C++反
汇编学习
笔记-多重继承
classA{public: A(){ptr="abcdefg";}; ~A(){}; virtualvoidprint(){ printf("%s\r\n",ptr); } virtualvoidprintA(){ printf("A::%s\r\n",ptr); }public:
lziog
·
2013-06-19 17:00
汇编学习
笔记(6)
题目描述:Link指向一个线性表,其中的首单元保存线性表的长度,编写程序,将该线性表中内容为0FFFFH的项删除。分析:从第一个元素开始逐个比较,找到0FFFFH删除并将长度减1。代码:datasegment linkdw10,1,0FFFFH,2,3,0FFFFH,0FFFFH,4,5,6,0FFFFH dataends codesegment assumecs:code,ds:data sta
wenhuayuzhihui
·
2013-06-18 11:00
汇编语言
汇编学习
笔记(5)
题目描述:在首地址为data1的子数组中,存放了100H个16位补码数,编写一个程序求出它们的平均值放在地址aver中,并求出数组中有多少个数大于此数,将结果放进count.代码:datasegment data1dw100Hdup(?) averdw0 countdw0 dataends codesegment assumeds:data,cs:code start: movax,data
wenhuayuzhihui
·
2013-06-18 02:00
汇编学习
笔记(3)
题目描述:编写一段子程序BINIHEX,完成十六进制的输出,需要输出的书在AX。分析:数据在寄存器是二进制保存的,每四位对应一位十六进制,可以通过循环移位输出。代码:codesegment start: assumecs:code mainprocfar movax,1256 callBINIHEX movah,4CH int21h ret MAINENDP ;=============
wenhuayuzhihui
·
2013-06-18 01:00
汇编学习
笔记(2)
题目描述:从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符字数统计,并显示结果。分析:循环输入,遇到$符号结束,每输入一个字符判断是否为非数字字符。代码:codesegment assumecs:code start: movcx,0 movax,0 input: movah,01h int21h cmpal,24H;$字符的ASCII码 jznext cmpal,30H jbL1
wenhuayuzhihui
·
2013-06-17 12:00
汇编学习
笔记(1)
问题描述:已知变量X的值为2767,请编程统计变量X的二进制中有多少个一,并记入ONE变量。分析:数值在内存中的存储本来就是二进制,所以不需要再做转换,使用移位指令统计每一位即可。代码:datasegment xdw2767 onedw0 dataends codesegment start: assumeds:data,cs:code movax,data movds,ax movcx,1
wenhuayuzhihui
·
2013-06-17 11:00
51单片机
汇编学习
笔记(待续)
51\52单片机
汇编学习
笔记 写在前面: 本文适合阅读ppt是参考。笔记参考书籍为《单片机中级教程-原理及应用》,参考ppt为三明学院机电工程学院使用ppt(文章结尾提供下载地址)。
runfeel
·
2013-06-15 01:00
学习笔记
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
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
其他