计算机指令

汇编语言 实验1

孤街浪徒 提交于 2019-11-28 22:50:53
实验1 一、熟悉debug功能 : -r 查看/修改寄存器内容 用法1: -r 查看当前各寄存器中内容 用法2: -r 段地址:偏移地址 修改【段地址:偏移地址】表示的内存中的内容 示例: -d :查看内存中的内容(右侧显示以内存中的内容作为ASCLL码的符号,如果没有对应符号则显示“.“) 用法1: -d 查看从当前CS:IP地址开始的默认128字节内容 用法2: -d 段地址:偏移地址 查看从【段地址:偏移地址】表示的内存开始的默认128字节内容 用法3: -d 段地址:偏移地址1 偏移地址2(或l+数字) 查看从【段地址:偏移地址1】表示的内存开始到偏移地址2的内容(或者显示指定长度的内容) 示例: -e :改写内存中内容(后面一定要加地址,否则报错) 用法1: -e 【段地址:偏移地址】 要改写的内容(用空格间隔) 从【段地址:偏移地址】开始改写内存中的内容,最多能一次性输入32个左右 用法2: -e ‘字符’ ‘字符’ ……(或者“字符“) 从【段地址:偏移地址】开始改写内存中的内容,以ASCLL码的方式存入内存单元 用法3: -e 【段地址:偏移地址】 可以逐个修改从【段地址:偏移地址】开始内存中的内容,形式为“原值.修改值“,(原值会自动给出)按空格进入下一个值得修改。若原值不需要修改,则按空格跳过。 示例: 单步跟踪指令 -t :执行一条指令。遇到loop

无需安装,仅需 1 条指令,秒实现内网穿透的神器,你有用过吗?

若如初见. 提交于 2019-11-28 20:46:44
什么是 Serveo Serveo 是一个免费的内网穿透服务, Serveo 可以将本地计算机暴露在互联网上,官方声称其为 Ngrok 的绝佳替代品。 Serveo 其最大优点是使用现有的 SSH 客户端,无需安装任何客户端软件,即可完成端口转发。 Serveo 工作原理很简单:当用户通过 SSH 连接到 Serveo 时会与该网站建立一个远程代理, Serveo 随后会生成一个 公共 URL ,任何人都可以通过这个 URL 访问你的本地计算机。 项目地址: https://serveo.net 使用 Serveo Serveo 的使用非常简单,只需要可以使用 SSH 客户端并且能连接到互联网的任意系统都行。比如: Linux 、 Windows 、 MacOS 等系统,就算是 Android 、 iOS 也同样没问题。下面我们来看几个最常用的使用实例: 开放本地服务到公网 将一个本地应用的 8080 端口映射到公网中。 # 如果要转发其它端口,只需替换端口为其它就可以了 $ ssh -R 80:localhost:8080 serveo.net Hi there Forwarding HTTP traffic from https://heryum.serveo.net Press g to start a GUI session and ctrl-c to quit. SSH

软件设计师考试之计算机系统知识学习

二次信任 提交于 2019-11-28 19:49:11
概要 考试前提 计算机系统硬件基本组成 计算机系统硬件组成 计算机系统由软件和硬件组成。 硬件系统主要由,运算器,控制器,存储器,输入设备,输出设备。五部分组成。 其中运算器和控制器被集成在CPU中,他们和存储器一起协调工作类似于人们的脑子;其中输入设备如键盘,鼠标,类似于人们的眼睛和耳朵;输出设备,显示器,类似于人的手和嘴。 中央处理器 CPU :取指令 分析指令 执行指令 CPU的功能: 程序控制,操作控制,时间控制,数据处理。 CPU的组成:cpu主要由运算器,控制器,寄存器和内部总线组成。 运算器 作用: 数据处理,完成算术运算和逻辑运算 组成: 算术逻辑单元(ALU) ,累加寄存器(AC),数据缓冲寄存器(DR),状态条件寄存器(PSW)等 控制器 作用: 控制CUP的工作,指令控制逻辑,时序控制逻辑,中断控制逻辑。 指令控制逻辑: 取指令,分析指令,执行指令 指令寄存器(IR):暂存从内存储器取到缓冲寄存器中的指令 程序计数器(PC):寄存信息和计数 地址寄存器(AR):保存当前CPU所访问的内存单元的地址。 指令译码器(ID):对操作码字段进行分析解释和识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各个部件工作,完成所需的功能。 时序控制逻辑: 为每条指令按时间提供应有的控制信号。 中断控制逻辑: 用于控制各种中断 运算器受控制器控制 多核cpu 不是重点

深入浅出计算机组成原理:GPU(下)-为什么深度学习需要使用GPU?(第31讲)

柔情痞子 提交于 2019-11-28 17:47:39
一、引子 上一讲,我带你一起看了三维图形在计算机里的渲染过程。这个渲染过程,分成了顶点处理、图元处理、栅格化、片段处理,以及最后的像素操作。这一连串的过程, 也被称之为图形流水线或者渲染管线。 因为要实时计算渲染的像素特别地多,图形加速卡登上了历史的舞台。通过3dFx的Voodoo或者NVidia的TNT这样的图形加速卡, CPU就不需要再去处理一个个像素点的图元处理、栅格化和片段处理这些操作。而3D游戏也是从这个时代发展起来的。 你可以看这张图,这是“古墓丽影”游戏的多边形建模的变化。这个变化,则是从1996年到2016年,这20年来显卡的进步带来的。 二、Shader的诞生和可编程图形处理器 1、无论你的显卡有多快,如果CPU不行,3D画面一样还是不行 不知道你有没有发现,在Voodoo和TNT显卡的渲染管线里面,没有“顶点处理“这个步骤。在当时,把多边形的顶点进行线性变化,转化到我们的屏幕的坐标系的工作还是由CPU完成的。 所以,CPU的性能越好,能够支持的多边形也就越多,对应的多边形建模的效果自然也就越像真人。而3D游戏的多边形性能也受限 于我们CPU的性能。无论你的显卡有多快,如果CPU不行,3D画面一样还是不行。 2、1999年NVidia推出的GeForce 256显卡 所以,1999年NVidia推出的GeForce 256显卡,就把顶点处理的计算能力

认识CPU的工作原理

末鹿安然 提交于 2019-11-28 16:59:00
学习CPU的工作原理 在了解CPU的工作原理之前,先简单谈谈CPU是如何生产出来的。 CPU是在特别纯净的硅材料上制造的。一个CPU的芯片包含上百万个精巧的晶体管。人们在一块指甲盖大小的硅片上,用化学的方法蚀刻或光刻出晶体管。因此从这个意义上来说,CPU正是由晶体管组合而成的。 简单而言,晶体管就是微型的电子开关。它们是构建CPU的基石,你可以把一个晶体管当做一个点灯开关,它们有个操作位,分别代表两种状态:(开)和OFF(关) 这一开一关就相当于晶体管的连通断开,而这两种状态正好与二进制中的状态:0 1 对应! 这样,计算机就具备了处理信息的能力。 此处为:硅材料图、晶体管图。 但是你不要以为,只有简单的0 和 1 两种状态的晶体管的原理很简单,其实它们的发展经过科学家们多年的辛苦研究得来的。 在晶体管之前,计算机依靠速度缓慢,低效率的真空电子管和机械开关来处理信息,后来科研人员把这两个晶体管放置到了一个硅晶体中,这样便创作出第一个集成电路,后面才有了微处理器。 看到这里,你一定想知道 晶体管是如何利用0 和 1 这两种电子信号来执行指令和处理数据的呢? 其实,所有电子设备都有自己的电路和开关,电子在电路中流动或断开,完全是由开关来控制的。如果你将开关设置为OFF 那么电子将停止流动,如果你再将设置为ON 那么电子又会继续流动,晶体管的这种ON 与 OFF 的切换只有电子信号控制

FreeMarker手册全篇

给你一囗甜甜゛ 提交于 2019-11-28 15:50:43
FreeMarker 手册 用于 FreeMarker 2.3.19 Translated By Nan Lei 南磊 译 Copyright: The Chinese translation of the FreeMarker Manual by Nan Lei is licensed under a Creative Commons Attribution 3.0 Unported License (see http://creativecommons.org/licenses/by/3.0/ ). This licence only applies to the Chinese translation, not to the original (English) FreeMarker Manual. 版权说明: FreeMarker 中文版手册由南磊翻译,本文档基于 Creative Commons Attribution 3.0 Unported 授权许可(参见 http://creativecommons.org/licenses/by/3.0/deed.zh) 本许可仅应用于中文版,不对原版英文手册。 (译者联系方式为:nanlei1987@gmail.com 或 http://weibo.com/nanlei1987) 目录 前言… 7 什么是 FreeMarker?

计算机如何执行一条机器指令

一曲冷凌霜 提交于 2019-11-28 15:36:42
文章目录 指令运行过程: 微程序控制基本概念: 几个周期区别 寻址方式: 指令运行过程:  在 上篇 我们谈到,计算机处理一段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段和执行阶段。 1.取指阶段: 图中概念解释: PC(程序计数器),MAR(存储地址寄存器),CU(控制单元),IR(指令寄存器) AB(地址总线) ,DB(数据总线), CB(控制总线)。 取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去,具体的操作如下: ① 将程序计数器(PC)中的内容先送至存储器地址寄存器(MAR),然后送至地址总线(AB). ② 由控制单元(CU)经控制总线(CB)向存储器发读命令. ③ 从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR). ④ 将MDR的内容送至指令寄存器(IR)中. ⑤ 将PC的内容递增,为取下一条指令做好准备. 2.分析取数阶段: 取出指令后,指令译码器(ID)可识别和区分出不同的指令类型.此时计算机进入分析取数阶段,以获取操作数.由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的. 对于无操作数指令,直接进入执行阶段。 取数要计算操作数有效地址。对于不同的寻址方式,有效地址的计算方法是不同的,有时需要多次访问主存才能取出操作数(间接寻址)。如果通用寄存器中有

2.Python入门-计算机组成、指令和程序、标识符、变量、数据类型、对象和变量关系、运算符

坚强是说给别人听的谎言 提交于 2019-11-28 15:24:19
一、计算机的组成 计算机由两部分组成:硬件 和 软件 硬件包含:键盘、鼠标、显示器、CPU、主板、内存、硬盘 。。。   -硬件是看的见摸得着的 软件包含:系统软件(windows、macOS、Linux)和应用软件(office 、QQ、绝地求生)   -软件是看的见摸不着的,软件负责控制计算机中的硬件 二、指令和程序 计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。 中央处理器:运算器和控制器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。 程序实际上就是指令的集合,我们程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情 “冯·诺依曼结构”有两个关键点,一是指出要将存储设备与中央处理器分开,二是提出了将数据以二进制方式编码。 三、字面量、变量、数据类型 标识符: 第一个字符必须是字母表中字母或下划线 _ 。 标识符的其他的部分由字母、数字和下划线组成。 标识符对大小写敏感。 在Python中所有可以自主命名的内容都属于标识符 比如:变量名、函数名、类名 标识符必须遵循标识符的规范   1.标识符中可以含有字母、数字、_,但是不能使用数字开头     例子:a_1 _a1 _1a   2.标识符不能是Python中的关键字和保留字     也不建议使用Python中的函数名作为标识符

Windbg命令的语法规则系列(二)

半城伤御伤魂 提交于 2019-11-28 15:06:10
二、字符串通配符语法 一些调试器命令具有接受各种通配符的字符串参数。这些类型的参数支持以下语法功能: 星号(*)表示零个或多个字符。 问号(?) 表示任何单个字符。 包含字符列表的括号([])表示列表中的任何单个字符。列表中只有一个字符匹配。 在这些括号中,可以使用连字符(-)指定范围。 例如,prog[er-t7]am匹配“progeam”、“program”、“progsam”、“progtam”和“prog7am”。 数字符号(#)表示前面零个或多个字符。例如,lo#p与“lp”、“lop”、“loop”、“loop”等匹配。您还可以将数字符号与括号组合,因此m[ia]#n与“mn”、“min”、“man”、“maan”、“main”、“mian”、“miin”、“miain”等匹配。 加号(+)表示前面的一个或多个字符。例如,lo+p与lo p相同,只是lo+p与“lp”不匹配。同样,m[ia]+n与m[ia]n相同,只是m[ia]+n与“mn”不匹配。A?+B和A*B一样,除了A?+B与“AB”不匹配。 如果必须指定文字数字符号(#),问号(?),左括号([),右括号(]),星号(*)或加号(+)字符,必须在字符前面添加反斜杠(\)。如果不将连字符括在括号中,则连字符始终是文字。但不能在带括号的列表中指定文字连字符。 指定符号的参数还支持一些附加功能。

volatile关键字浅析

风格不统一 提交于 2019-11-28 13:01:43
volatile关键字浅析 在并发编程中,volatile是很常用的一个修饰符。JDK官方文档是这么形容volatile的: The Java programming language provides a second mechanism, volatile fields, that is more convenient than locking for some purposes. A field may be declared volatile, in which case the Java Memory Model ensures that all threads see a consistent value for the variable. 这里意思很明白,volatile在某些用途下比锁更方便,一个变量被声明为volatile,jvm能够保证所有的线程都看到的是一致的变量,也就说一个线程对一个共享变量修改,其他线程能够立即看到最新的值。 volatile在某些情况下可以代替锁,比synchronized成本和开销更低,因为不会引起线程的上下文切换,为什么上下文切换就会开销比较大,因为原来缓存的指令和数据都没用了,要重新加载指令和数据到缓存中,你说开销大不大。 1.首先看看可见性 volatile修饰的共享变量,当该变量发生写操作时,把该变量刷新到内存中