计算机指令

汇编语言程序设计学习笔记(第一遍学习)-第1节:机器语言编程到汇编语言的产生

柔情痞子 提交于 2019-12-18 08:09:39
  大家好!今天是我学习汇编语言的第一课。我感觉汇编好好玩啊! 机器码编程   哇! 一上来就写程序了啊,还是用机器码的啊!是呢!嘿嘿!我们去下载1个二进制编辑器,我也不知道哪款好用点,我下载的是FlexHEX。然后我们打开它,并写入一下代码:CD 00 以前我学C语言的时候,我知道CD 00 其实就是1100 1101 0000 0000啦!然后我们保存它为1个文件。关于文件名随便取啦!然后我们运行打开cmd,我们把刚才编辑保存好的文件拖到cmd中然后再运行! 哇!程序输出了Divide overflow 好棒啊!一上来就可以机器码编程啦!而且只有2字节呀!看起来也不是那么的复杂啊!但是我看下面的程序,下面的程序是welcome to masm的机器码: 大家看到了吗?!好多的01011001啊,要是我们写二进制机器码的时候1个被错误的写成0了,那如何去调试查找啊,所以汇编语言产生了哦!汇编语言它的主题是汇编指令,汇编指令呢只是机器指令便于书写记忆的一种格式。比如:机器指令1000100111011000 它的意思是寄存器BX的内容送到AX中,对于的汇编指令是:MOV AX,BX。大家看,这样的写法是不是更接近人类语言呀!(咦!什么是寄存器啊,这里怎么冒出来个寄存器,寄存器是CPU中可以存储数据的器件,一个CPU中有多个寄存器,AX,BX就是其中2个寄存器的代号)

【计算机组成原理】 输入/输出系统

依然范特西╮ 提交于 2019-12-18 02:35:31
I/O 系统基本概念 I/O 系统中的几个基本概念如下: 外部设备。包括输入/输出设备及通过输入。输出接口才能访问的外存储结构。 接口。在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件。协调包括传输过程中速度的匹配、电平和格式转换等。 输入设备,用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。 输出设备。用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。 外存设备。指除计算机内存及 CPU 缓存等外的存储器。硬磁盘、光盘等是最基本的外存设备。 一般来说,I/O 系统由 I/O 软件和 I/O 硬件两部分构成: I/O 软件。包括驱动程序、用户程序、管理程序、升级补丁等。通常采用 I/O 指令和通道指令实现 CPU 与 I/O 设备的信息交换。 I/O 硬件。包括外部设备、设备控制器和接口、I/O 总线等。通过设备控制器来控制 I/O 设备的具体动作:通过 I/O 接口与主机(总线)相连。 在输入/输出系统中,经常需要进行大量的数据传输,而传输过程中有各种不同的 I/O 控制方式,基本的控制方式有以下 4 种: 程序查询方式。由 CPU 通过程序不断查询 I/O 设备是否已经做好准备,从而控制 I/O 设备与主机交换信息。 程序中断方式。只在 I/O 设备准备就绪并向 CPU

Nginx模块开发入门

和自甴很熟 提交于 2019-12-17 21:10:07
前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中, Nginx的占有率为6.8% 。与Apache相比, Nginx在高并发情况下具有巨大的性能优势 。 Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性。Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内各个部门正越来越多使用Nginx取代Apache,据笔者了解,在腾讯和新浪等公司也存在类似情况。 同时,大量的第三方扩展模块也令Nginx越来越强大。例如,由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的 nginx_lua_module 可以将Lua语言嵌入到Nginx配置中,从而利用Lua极大增强了Nginx本身的编程能力,甚至可以不用配合其它脚本语言(如PHP或Python等),只靠Nginx本身就可以实现复杂业务的处理。而春来所开发的 ngx_openresty 更是通过集成 LuaJIT 等组件,将Nginx本身变成了一个完全的应用开发平台。目前淘宝数据平台与产品部量子统计的产品都是基于ngx_openresty所开发。对ngxin_lua_module或ngx

计算机组成原理复习

旧时模样 提交于 2019-12-17 19:12:30
title: 计算机组成原理复习 date: 2018-06-28 14:08:04 tags: 课程学习 1.计算机硬件包括:输入设备,输出设备,运算器,控制器,存储器 2.计算机软件一般分为两大类:一类应用软件,另一类叫系统软件,操作系统属于系统软件类 3.第一代计算机的逻辑部件采用的是电子管,1946-1957年; 第二代计算机的逻辑部件采用的是晶体管,1958-1964年; 第三代计算机的逻辑部件采用的是中小规模集成电路,1965-1971年; 第四代计算机的逻辑部件采用的是大规模及超大规模集成电路,1972至今 4.计算机系统由硬件系统和软件系统构成。 5.计算机系统的三个层次结构由内到外分别是硬件系统,软件系统和应用软件 6.用高级语言编写的程序称为源 程序,经编译程序或解释程序翻译后称为 目标程序 7.将源程序翻译成目标程序的软件是编译器或编译程序 8.程序设计语言一般分为3类:机器语言,汇编语言,高级语言 9.编译方式是使用编译程序把源程序编译成机器代码的 目标程序 ,并以机器程序 的形式保留 10.简要说明计算机系统的层次结构? 计算机系统具有层次性,它由多级层次结构组成。从功能上计算机系统可分为五个层次级别: 第一级是微程序设计级。这是一个硬件级,它由机器硬件直接执行微指令。 第二级是一般机器级,也称为机器语言级。它由微程序解释机器指令系统.这一级是硬件级。

计算机导论课后总结-5

匆匆过客 提交于 2019-12-17 06:00:56
第四章 程序设计语言 程序设计语言简介 定义:程序设计语言是一组用来定义计算机程序的语法规则。 三个元素:语法、语义和语用 语法:用字符组合合成语法的规则集合 语义:一条合法语句的含义 语用:涉及语言使用者各方面的内容 程序设计语言的基本成分:数据成分、运算成分、控制成分、传输成分 程序设计语言的分类及编程模式 分类 机器语言:二进制代码表示的能直结识别的机器指令的集合。 指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。 ①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。 ②二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。 ③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。 ④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。 ⑤可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。 汇编语言:采用助记符来编写程序,是机器语言的符号化。 机器指令: 1000100111011000 汇编指令: MOV AX, BX

《30天自制操作系统》笔记(12)——多任务入门

大兔子大兔子 提交于 2019-12-16 23:42:14
《30天自制操作系统》笔记(12)——多任务入门 进度回顾 上一篇 介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。 什么是多任务 对程序员来说,也许这是废话,不过还是说清楚比较好。 多任务就是让电脑 同时 运行多个程序(如一边写代码一边听音乐一边下载电影)。 电脑的CPU只有固定有限的那么一个或几个, 不可能 真的同时运行多个程序。所以就用近似的方式,让多个程序 轮换 着运行。当轮换速度够快(0.01秒),给人的 感觉 就是"同时"运行了。 多任务之不实用版 我们首先从最基本的想法开始,做一个不实用版的多任务作为例子。在学习这个例子的过程中引入真正的多任务必须的TSS、TR、far模式JMP的概念,为后续内容打基础。 当你向CPU发出任务切换的指令时,CPU会先把寄存器中的值全部 写入 内存某处;然后,从内存另一位置把所有寄存器的值 读取 出来。这就完成了一次任务切换。 任务切换消耗的时间就是读写内存消耗的时间,大概为 0.0001秒 。 任务状态段TSS 存取全部寄存器的值这件事,当然需要有一个数据结构,这就是 "任务状态段" (Task Status Segment)简称TSS。 1 struct TSS32 2 { 3 int backlink, esp0, ss0, esp1, ss1, esp2, ss2, cr3; 4 int eip,

计算机组成原理复习要点

陌路散爱 提交于 2019-12-16 06:48:39
1. 冯•诺依曼计算机的特点主要有: (1) 计算机由运算器,控制器、存储器和输入/输出设备五大部件构成 ,缺少任何一个部件都无法正常工作 (2) 指令和数据都以同等地位存放在存储器中 ,并可按地址访问。 (3)指令和数据都均以 二进制形式表示 (4) 指令在存储器中按顺序存放 。通常,指令是顺序执行的。在特殊情况下,可根据运算结果或指定的条件改变运算顺序。 (5) 指令由操作码和地址码组成 。操作码表示操作的性质,地址码表示操作数在存储器中的位置 (6) 机器以运算器为中心。 2.计算机系统的层次结构 计算机系统层次结构,指的是计算机系统由 硬件和软件 两大部分所构成,而如果 按功能再细分 ,可分为 7层 。 3.计算机各种性能指标之间的关系 总线的技术指标: 1. 总线的带宽 ( 总线数据传输率 ):总线带宽是指单位时间内总线上传输的数据量 2. 总线位宽:总线能同时传输的二进制位数 ,或数据总线的位数。 3.总线的工作频率:总线工作频率单位以MHz为单位,工作频率越高总线工作速率越快,总线带宽越宽。 4.各种性能指标之间的关系p19 计算机性能的定义: 吞吐率和响应时间 是考量一个计算机系统性能的基本指标。 吞吐率表示在单位时间内所完成的工作量 。在有些场合,吞吐率也可以称为带宽。 响应时间也被称为执行时间或等待时间 ,是指从作业在CPU上执行所用的时间外,还包括磁盘访问时间

vim编辑器

孤人 提交于 2019-12-15 17:26:29
1. 为什么需要使用 vim ? • 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在; • 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令); • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计; • 因为程序简单,编辑速度相当快速。 2. vi 的使用 基本上 vi 共分为三种模式,分别是『一般指令模式』、『编辑模式』与『指令列命令模式』。 这三种模式的作用分别是: o 一般指令模式 (command mode) 以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整列』来处理文件内容, 也可以使用『复制、贴上』来处理你的文件数据。 o 编辑模式 (insert mode) 在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般指令模式时,

Java 并发编程(面试篇)

此生再无相见时 提交于 2019-12-13 10:45:31
请谈谈你对 volatile 的理解 volatile 是 Java 虚拟机提供的轻量级的同步机制 保证可见性 禁止指令排序 不保证原子性 JMM(Java 内存模型) 你谈谈 基本概念 JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规定或则规范,通过这组规范定义了程序中的访问方式。 JMM 同步规定 线程解锁前,必须把共享变量的值刷新回主内存 线程加锁前,必须读取主内存的最新值到自己的工作内存 加锁解锁是同一把锁 由于 JVM 运行程序的实体是线程,而每个线程创建时 JVM 都会为其创建一个工作内存,工作内存是每个线程的私有数据区域,而 Java 内存模型中规定所有变量的储存在主内存,主内存是共享内存区域,所有的线程都可以访问,但线程对变量的操作(读取赋值等)必须都工作内存进行看。 首先要将变量从主内存拷贝的自己的工作内存空间,然后对变量进行操作,操作完成后再将变量写回主内存,不能直接操作主内存中的变量,工作内存中存储着主内存中的变量副本拷贝,前面说过,工作内存是每个线程的私有数据区域,因此不同的线程间无法访问对方的工作内存,线程间的通信(传值)必须通过主内存来完成。 内存模型图 三大特性 可见性 123456789101112131415161718192021222324252627282930313233 /** * @Author: cuzz * @Date:

计算机组成原理常见题(六)

那年仲夏 提交于 2019-12-13 05:32:41
1.假定用若干个16Kx1位的存储器芯片组成一个64Kx8位的存储器,芯片内各单元连续编址,则地址BFF0H所在的芯片的最小地址是(C) A.40000H B.60000H C.8000H D.0000H 2.假设一个同步总线的工作频率为33MHZ,总线有32位数据线,每个总线时钟传输一次数据,则该总线的最大数据传输率为(B) A.66MB/s B.132MB/s C.528MB/s D.1056MB/s 3.假设某条指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为1200H,地址1200H中的内容为12FCH,地址12FCH中的内容为38B8H,地址38B8H中的内容为88F9H,则该操作数为() A.1200H B.12FCH C.38B8F D.88F9H 4.相联存储器是按(B)进行寻址访问的寄存器 A.地址指定方式 B.内容指定方式 C.堆栈访问方式 D.队列访问方式 5.假定某程序p由一个100条指令构成的循环组成,该循环共执行50次,在某系统S中执行程序p花了20000个时钟周期,则系统S在执行程序p时CPI是多少? 在20000个时钟周期中共执行100x50=5000条指令,CPI=20000/5000=4 CPI:执行每一条指令所花的时钟周期数 CPI=执行指令所花的时钟周期数/执行了多少条指令 6.设某机主存容量为16MB,Cache容量为16KB