计算机基础——Java笔记一

电子管-晶体管摩尔定律 18个月变一次     贝尔实验室 C语言是基础、芯片领域软件领域机器语言 ——汇编语言——高级语言 (面向过程,面向对象) 基本的逻辑怎么用代码实现数据类型数据类型            大小       范围                                             默认值 byte(字节)         8         -1
阅读本文

常见的几种语言函数调用约定

在C语言中,假设我们有这样的一个函数:int function(int a,int b)调 用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算 机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数
阅读本文

汇编语言-寻址方式

一 定义  在指令中,指定操作数或操作数存放位置的方法称为寻址方式二 分类(16位cpu)  1 立即数寻址  2 寄存器寻址  3 存储器寻址    (1) 直接寻址    (2) 寄存器间接寻址    (3) 寄存器相对寻址      操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。      若有效地址用SI、DI和
阅读本文

编译执行和解释执行

A、解释程序 所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就
阅读本文

C++编译器详解(一)

C/C++编译器-cl.exe的命令选项1、设置环境变量:PATH=C:Program FilesMicrosoft Visual Studio 8VCbinINCLUDE=C:Program FilesMicrosoft Visual Studio 8VCincludeLIB=C:Program FilesMicrosoft Visual Studio 8VClib如果提
阅读本文

Linux下AT&T汇编语法格式与Intel汇编语法格式异同

由于绝大多数的国内程序员以前只接触过Intel格式的汇编语言,很少或几乎没有接触过AT&T汇编语言,虽然这些汇编代码都是Intel风格的。但在Unix和Linux系统中,更多采用的还是AT&T格式,两者在语法格式上有着很大的不同,其实完全可以使用原来汇编的思路解决问题,只要掌握下面两者的不同:  一、在AT&T汇编格式中,寄存器名要加上‘ %‘作为前缀;而在Intel汇编格式中,寄存器名不需要
阅读本文

协程是什么

以下是我自己的理解:一般的线程切换是由操作系统来执行的,而协程则是一种特殊的线程,这种线程的切换是由用户自己来决定的,并且切换需要做的额外工作如:执行状态和执行位置的保存,也是由用户自己来做的。 以下是一个解释的比较清楚的内容: 笔者最美好的记忆来自于早年在6502 cpu的cc800上写汇编的年代, 那个时代的计算机甚至没有操作系统,也没有实模式等保护机制。在6502上写汇编应用其实非常简单,系
阅读本文

Android 抓包并通过 Wireshark 分析

分析 Android 中 app 的网络数据交互,需要在 Android 上抓包,常用工具为 tcpdump ,用 tcpdump 生成 Wireshark 识别的 pcap 文件,把 pcap 文件从手机上拷贝到电脑上,Wireshark 加载 pcap 文件,通过 Wireshark 分析 tcpdump 抓取的数据tcpdump 安装手机需要 root下载 Android tcpdump使用
阅读本文

volatile的定义与实现原理

在了解volatile实现原理之前,我们先来看下与其实现原理相关的CPU术语与说明。表2-1是CPU术语的定义。 表2-1 CPU的术语定义 volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编指令来查看对volatile进行写操作时,CPU会做什么事情。 Java代码如下。 instance = new Singleton(); // in
阅读本文

CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换

CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换 一.CString与LPCWSTR      两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。     CString转换成LPCWSTR
阅读本文

C入门之一

1.stdio.h不要写错成studio.h2.```#include int main(){ /* 我的第一个 C 程序 */ printf(“Hello, World! n“); return 0;}```printf字符串必须用双引号,不然就报错hello.c:5:9: warning: character constant too long for its type3.在C
阅读本文

ios知识点

获取plist信息 获取文件路径: NSString *filePath=[[NSBundle mainBundle] pathForResource:@“Info.plist”ofType:nil]; 解析: NSDictory *dict=[NSDictory dictionarywithContentOfFile:filepath] NSString *Version=dict[@”C
阅读本文

TI DSP C64X 优化基本方法

一、优化流程一般分为三个阶段     阶段一:直接按照需要用C语言实现功能。在实际的DSP应用中,许多算法直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般先用C语言来实现,然后编译运行,利用C64X开发环境的profile; clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。   阶段二:C语言级的优化。选择C64X开发环境提供的优化方式以及充分运用其他技巧
阅读本文

C语言关键字Volatile

Volatilevolatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序: short f
阅读本文

串口通信实战

start.S main.cvoid main(void) { uart_init(); while(1) { uart_putc(‘a‘); delay(); } }uart.c#define GPA0CON 0xE0200000 #define ULCON0 0xE2900000 #define U
阅读本文

C语言及如何学

C语言本身只提供必要的语言特性,其它复杂一点功能如文件处理、数学计算等等都以库函数方式提供,甚至连malloc、free这种“必须有”的功能,也是以标准库函数的方式提供,而不是作为C语言核心出现。C语言也是一个比较少见的应用领域极为广泛的语言。比如编写操作系统这种高难问题,只有C++、汇编语言可以做到。C语言可以编写服务器端软件如Apache、Nginx,或者编写GUI程序,如GTK。大多数程序语
阅读本文

第八章课后作业

Chapter 8 NP-complete problems 8.10 description Proving NP-completeness by generalization. For each of the problems below, prove that it is NP-complete by showing that it is a generalization of some N
阅读本文

arm汇编程序调用C函数之参数传递

对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,在汇编程序中调用C函数的参数传递规则: ATPCS建议C函数的形参不超过4个,如果形参个数少于或等于4,则形参由R0,R1,R2,R3四个寄存器进行传递;若形参个数
阅读本文

TI DSP 优化基本方法

一、优化流程一般分为三个阶段   阶段一:直接按照需要用C语言实现功能。在实际的DSP应用中,许多算法直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般先用C语言来实现,然后编译运行,利用C64X开发环境的profile; clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。   阶段二:C语言级的优化。选择C64X开发环境提供的优化方式以及充分运用其他技巧,优
阅读本文