地址

第1章 基础知识小结

烂漫一生 提交于 2020-02-09 02:56:19
汇编语言的组成 汇编语言发展至今, 有以下3类指令组成: (1)汇编指令:机器码的助记符,有对应的机器码。 (2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。 (3)其他符号:如+,-,*,/等,由编译码识别,没有对应的机器码。 存储单元 1Byte(字节) = 8bit (二进制位) 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 一个存储单元可以存储8个bit CPU对存储器的读写 CPU通过总线将地址、数据和控制信息传到存储器芯片中。 CPU通过地址总线来指定存储单元, 若一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。 地址总线的宽度决定了CPU的寻址能力。 CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。 8根数据总线一次可传送一个8位二进制数据 。 CPU对外部器件的控制是通过控制总线来进行的,控制总线的宽度决定了CPU对系统中其他器件的控制能力。 在存储器中,指令和数据没有任何区别,都是二进制信息。 8086CPU数据总线宽度为16根,一次可以传送的数据为2B 接口卡 CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。 内存地址空间 内存地址空间的大小受CPU地址总线宽度的限制。

华为路由NAT技术

别来无恙 提交于 2020-02-08 23:08:59
NAT:网络地址转换 将私网地址转换为公网地址 NAT分类: 1、静态NAT (一对一:一个公网地址对应一个私网地址) 2、NAPT/PAT (一对多:一个公网地址对应多个私网地址)分为3步 1)定义多个私网地址 [huawei]acl 2000 [huawei-acl-basic-2000]rule pemit source 192.168.1.0 0.0.0.255 2)定义一个公网 [huawei]nat address-group 1 12.1.1.15 12.1.1.15(不是接口的那个IP) //定义NAT地址池为一个IP 名字 起始地址 结束地址 3)配置NAT [huawei]intface g0/0/2 [huawei-g0/0/2]nat outbound 2000 address-group 1 3、EasyIP 1)定义多个私网地址 [huawei]acl 2000 [huawei-acl-basic-2000]rule pemit source 192.168.1.0 0.0.0.255 2)配置NAT [huawei]intface g0/0/2 [huawei-g0/0/2]nat outbound 2000 //直接用公网地址的IP进行转换 4、动态NAT (多对多:多个公网地址对应多个私网地址) 1)定义多个私网地址 [huawei]acl

AJAX---跨域相关概念

雨燕双飞 提交于 2020-02-08 20:29:56
跨域相关概念 同源策略是浏览器的一种安全策略,所谓同源是指域名,协议,端口完全相同,只有同源的地址才可以相互通过 AJAX 的方式请求。 同源或者不同源说的是两个地址之间的关系 不同源地址之间请求我们称之为跨域请求 什么是同源?例如: http://www.example.com/detail.html 与一下地址对比 来源: https://www.cnblogs.com/jane-panyiyun/p/12284239.html

0day学习笔记(2)--函数调用

﹥>﹥吖頭↗ 提交于 2020-02-08 19:27:21
函数调用过程 调用函数操作 函数参数入栈(在当前函数栈帧),从左至右或从右至左视情况而定 一般为从右至左 mov 地址,参数 的一个操作并不直接pop而是定位到地址将参数传递进去 call offerset : 调用函数,call标识符或地址. 同时为要调用的函数开辟新的栈帧 向栈中压入当前指令的地址,即返回地址 跳转到调用函数的入口地址 返回的时候有类似retn的操作 调整栈顶和栈底 push ebp :将上一个函数栈底入栈,在上一个函数的栈顶 mov ebp,esp sub esp ,10h :10h指的是新栈的大小 一系列新的函数的操作… 调用结束: leave : 调整栈帧的指令 mov esp,ebp pop ebp retn : POP EIP jmp offerset 调用main函数时有 and esp, 0FFFFFFF0h : 字节对齐(16位)的一个操作,编译优化需要 返回地址 将要调用函数的参数2 将要调用函数的参数1 当前函数的一系列变量,参数,地址 以上即是调用完一个函数后属于上一个函数的栈空间的内容 来源: CSDN 作者: lonmar. 链接: https://blog.csdn.net/weixin_45551083/article/details/104224787

基于tiny4412的u-boot移植(一)

核能气质少年 提交于 2020-02-08 13:44:05
作者信息 作者:彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 平台介绍 开发环境:win7 64位 + VM ware11 + Ubuntu14.04 64位 开发板:tiny4412ADK + S700 + 4GB eMMC + 1G DDR3 工具链:友善之臂提供的 arm-linux- (gcc version 4.5.1) 要移植的u-boot版本:u-boot-2015-10 参考u-boot版本:友善之臂提供的 u-boot-2010-12 摘要 本博文简要分析了移植u-boot-2015-12到tiny4412,采用的是spl的启动方式,目前可以做到的是进入u-boot的命令终端,如下图: 而且仅仅支持从SD卡启动,以后会慢慢完善。 移植 要移植u-boot到tiny4412,首先我们需要对这块板子的 启动方式 、 地址空间 分配有清楚的认识。此外,由于刚开始只需要做到进入u-boot的命令行(如上图),其中至少涉及到了 系统时钟初始化 、 内存初始化 以及 串口初始化 ,做到这三点,就为以后的各种工作铺平了道路。 下面是一些参考资料: 技术部落 (这个网站对tiny4412的启动、时钟、串口以及内存初始化进行了详细的讲解) 嵌入式Linux系统开发完全手册_基于4412_上册.pdf (这个文档是韦东山写的,讲的也非常好)

第11次作业

泄露秘密 提交于 2020-02-08 10:53:37
本次课学到的知识点: 指针是c语言中非常重要的概念,使用指针可以对复杂数据进行处理,能对计算机的内存分配进行控制,在函数调用中使用指针还可以返回多个值。 指针访问内存和操纵地址,是通过变量的地址进行操控。 指针变量定义: 类型名 *指针变量名; 类型名指定指针变量所指向的变量的类型,必须是有效数据类型 不同类型指针变量所占的内存空间大小相同。 冒泡排序 实验过程中遇到的问题及解决方法: 1.对指针没有听懂,和地址等概念理解不够充分 2.多看书,上网看别人写的代码从中理解 实验心得体会及本章学习总结: 指针部分完全没有听懂,还是得看书和查资料 几个问题的思考与回答: (1)两个相同类型的指针变量能不能相加?为什么? 答:不能。因为相加后的值可能超出,不在这个地址内,是毫无意义的,且是不被允许的。 (2)在使用scanf()函数时,输入参数列表需要使用取地址操作符&,但当参数为字符数组名时并没有使用,为什么?如果在字符数组名前加上取地址操作符&,会发生什么? 答:因为字符数组名的值是一个特殊的固定地址,可以看作是常量指针,因此不需要再使用 取地址符来获取该数组的地址。 如果在字符数组名str 前加上取地址操作符&,那么对其取地址&str 可以看做是这个数 组的第一个元素的地址,由于数组地址和数组第一个元素的地址相同,所以&str 表示地址值和str 表示的地址值是相等的。对scanf(

第11次作业

∥☆過路亽.° 提交于 2020-02-08 06:57:57
1.本次课学习到的知识点: (1)密码开锁中,定义变量来存放密码再定义一个特俗的指针变量,用于存放变量的地址; (2)地址和指针,变量或者程序代码被存储在以字节为单位组织的存储器中,一般是按“地址”存取的,对内存单元进行标识编号,房间号就是地址,要注意区分内存单元的内容和内存单元的地址; (3)c语言中把这种专门用来存放变量地址的变量称为“指针变量”,简称为指针;指针是用存放内存地址的变量,一个指针变量的值是另一个变量的地址,就称该指针变量指向那个变量; 2. 实验过程中遇到的问题及解决方法: (1)怎么说呢,往往书上有事也找不到有用的,有时问问老师 (2)百度 3. 实验心得体会及本章学习总结: (1)心得:这章节的内容很多,概念也不少,要多花时间看书,加以练习,拆分实数有些不会 (2)总结:初步了解指针,需要更多的时间学习 4. 几个问题的思考与回答: (1)两个相同类型的指针变量能不能相加?为什么? 不能。因为相加后的值可能超出,不在这个地址内,是毫无意义的,且是不被允许的。 (2)在使用scanf()函数时,输入参数列表需要使用取地址操作符&,但当参数为字符数组名时并没有使用,为什么?如果在字符数组名前加上取地址操作符&,会发生什么? 因为字符数组名的值是一个特殊的固定地址,可以看作是常量指针,因此不需要再使用 取地址符来获取该数组的地址。 如果在字符数组名str

无线网络加密防止有人闯入、共享:

不想你离开。 提交于 2020-02-08 06:20:27
以D-Link(DI-624+A)无线路由应用WPA-PSK加密方式为例,介绍一下无线路由器和无线网卡的安全设置。   首先在IE中输入192.168. 0.1登录到无线路由器,在“无线网络”窗口的“安全方式”中提供了“WEP、802.1X、WPA-PSK、WPA”四种方式,笔者选择“WPA-PSK”(如图1);接着设置加密方法,有“TKIP、AES”两种,笔者选择“TKIP”;下面要设置“共享密码”,注意,该密码最短为8个字符,完成密码设置后,点击“执行”按钮,重新激活无线路由器,这样就完成了WPA-PSK的设置。 无线网络应用了WPA-PSK加密方式后,当然也要修改客户端设置。打开“网络连接属性”切换到“无线网络配置”标签中,在“首选网络”框中选中无线网络项目,点击“属性”,切换到“关联”标签页,在“网络验证”栏中选择“WPA-PSK”,接着将“数据加密”项目修改为“TKIP”,然后在“网络密匙”栏中两次输入你的PSK密码,最后点击“确定”按钮,这样客户机就能重新接入无线网络了。 你的无线网络是使用WEP还是WPA加密方式,要根据你对网络安全性的要求而定。对于一般的家庭用户,使用WEP协议即可,如果你对网络安全性有特殊的要求,当然要使用WPA协议了。 与MAC地址相关的命令与软件 在人类社会社交中,我们认识一个人往往只会知道他的姓名,而身份证号码在一般的人际交往中会被忽略

数据库三大范式的理解(简单易懂)

天大地大妈咪最大 提交于 2020-02-08 01:56:44
什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 三大范式的定义: 第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。 第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。 第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)。 以下仅供参考! 第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。 第一范式是最基本的范式。如果数据库表中的 所有字段值都是不可分解的原子值 ,就说明该数据库满足第一范式。 第一范式的合理遵循需要根据系统给的实际需求来确定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成为一个数据库表的字段就行,但是如果系统经常访问“地址”属性中的“城市”部分,那么一定要把“地址”这个属性重新拆分为省份、城市、详细地址等多个部分来进行存储,这样对地址中某一个部分操作的时候将非常方便,这样设计才算满足数据库的第一范式。如下图。 第二范式

裸机——重定位

自古美人都是妖i 提交于 2020-02-07 19:29:04
1.重定位: 就是用地址无关码,把地址有关码加载到正确物理地址上。 地址有关码就是使用地址有关的汇编命令的代码。 2.地址无关码与地址有关码   地址无关码是运行地址与连接地址无关,也可以正确运行。   地址有关吗是运行地址必须匹配链接地址才能运行。 3.连接地址与运行地址   链接地址,是用来指导链接器连接的,本身可能会以立即数形式出现在代码中。(下面会有事例)   运行地址,也是物理地址,是硬件设计时就决定了的。 4.为什么地址有关码必须要链接地址与运行地址匹配?   因为地址有关码使用了地址有关的汇编指令,如长跳转 ldr(后面会分析)。 5.链接地址的指定方式   (1)默认指定     gcc test.c -o test.c // 链接地址默认从 0 开始   (2)-Ttext直接指定     ld -o test.elf -Ttext 0x10 a.o b.o c.o // 从 0x10 开始   (3)使用连接脚本   SECTIONS{ . = 0xd0020010; .text : { start.o * (.text) } .data : { * (.data) } bss_start = .; .bss : { * (.bss) } bss_end = .; }    这时连接地址从 0xd0020010开始 6. 代码分析 .global _start