imjacob的专栏

首页博文目录订阅
博 文

寻址模式

(2007/4/14 18:12)
D12只有一根地址线,所以只能有两个寄存器,即两个端口。他使用的实际上就是寄存器间接寻址。它手册中甚至没有寄存器这种称呼,只是给了一些操作命令,命令有命令码,我的理解是那个就是寄存器相对地址。 代码如下: void outportb(unsigned char port, unsigned char val){#ifdef JINGZHUANGif(port) USB_D12_COMMAND;// 若为命令采用奇地址else USB_D12_DATA;// 若为数据采用偶地址USB_D12_PORT = val;#els…
AT&T汇编与Intel汇编的比较 gcc采用的是AT&T的汇编格式,MS采用Intel的汇编格式. 一基本语法 语法上主要有以下几个不同. 1、寄存器命名原则 AT&T: %eax Intel: eax 2、源/目的操作数顺序 AT&T: movl %eax,%ebx Intel: mov ebx,eax 3、常数/立即数的格式 AT&T: movl $_value,%ebx Intel: mov eax,_value 把_value的地址放入eax寄存器 AT&T: movl $0xd00d,%ebx Intel: mov…
实例1:voidmain(intargc,char*argv[]){inta=10;intb=20;int&rn=a;cout<<rn<<"|"<<a<<endl;cout<<&rn<<"|"<<&a<<endl;//c++中是无法取得应用的内存地址的,取引用的地址就是取目标的地址!rn=b;//把引用指向另一个目标----变量bcout<<&rn<<"|"<<&a<<"|"<<&b<<endl;rn=100;//试图改变b的值cout<…

数组引用

(2007/3/25 20:36)
"数组引用"以避免"数组降阶"(本文曾贴于VCKBASE\C++论坛) 受[hpho]的一段模板函数的启发,特写此文,如有雷同,实在遗憾。数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是"数组降阶" #include <iostream>using namespace std; void Test( char array[20] ){cout << sizeof(array) << endl; // 输出 4} intmain( void ){char array[20] = { 0 };cout…
extern "C"表示该函数在做外部连接时可与C语言编译函数的格式进行匹配。 给个程序,有三个文件 --------------------------------------------------------------- 文件一:test.cpp --------------------------------------------------------------- #include <iostream> using namespace std; extern "C" extern void CFunc(void);//c++调用c void main(void){CFunc();} ----------------…
int student::id =9;//类的静态数据成员的初始化 void student::graduate() { 00411A30pushebp 00411A31movebp,esp 00411A33subesp,0CCh 00411A39pushebx 00411A3Apushesi 00411A3Bpushedi 00411A3Cpushecx 00411A3Dleaedi,[ebp-0CCh] 00411A43movecx,33h 00411A48moveax,0CCCCCCCCh 00411A4Drep stosdword ptr [edi] 00411A4Fpopecx//这两句是下面类的静态成员函数所没有的 00411A50mo…
实在没办法,这里的日志好像字数不能放得长,只能一拆为二。 原来的c++代码如下: #include <iostream>#include <stdio.h>#include <cassert>#include <iomanip>using namespace std; class student{private:char *students;int number;public:void graduate();static int id;//静态数据成员 static int world(){//students="heh";静态成员函数不能访问非静态成员id =8;//number =…
//二维数组的实现,同一维的 int d[2][3] ={6,7,8, 0041B208movdword ptr [d],6 0041B212movdword ptr [ebp-94h],7 0041B21Cmovdword ptr [ebp-90h],8 9,10,11}; 0041B226movdword ptr [ebp-8Ch],9 0041B230movdword ptr [ebp-88h],0Ah 0041B23Amovdword ptr [ebp-84h],0Bh //列指针,行指针的实现也同所有的指针实现 pp =d[0];//列指针 0041B244lea eax,[d] 0041B24Amovdword ptr [p…
以下是c中一些基本东西的汇编实现,试验平台为.net2003。 从中得到一些启发。 (1)c中的变量在汇编中都是这个变量的地址,所以在c中 变量a 在汇编中表示就是[a]; (2)指针和引用实现是一样的 (3)行指针和列指针的实现一样,事实上,左右的指针实现一样。编译器才没有那么多概念呢,他只知道指针,行指针和列指针只是我们理解的方便才弄出来的概念 (4)具体见下面 int main() { 0041B180pushebp 0041B1…

行指针和列指针

(2007/3/1 21:24)
两个程序有助于理解行指针和列指针 第一个来自于csdn。 问: 原来的程序: float *search(float (*pointer)[4],int n) { float *pt; pt=*(pointer+n); \\注意这里! return(pt); } main() { float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}; float *p; int i,m; printf("enter the number of student:"); scanf("%d",&m); printf("The scores of No.%d are:\n",m); p=search(score,m); fo…
博 主
进入imjacob的首页
博客名称:雅克的一府
日志总数:513
评论数量:863
访问次数:1949640
建立时间:2006/11/23 20:52
导 航
公 告
Locations of visitors to this page 本博客主要用于个人学习与资料收藏。当然大家应该读了之后也能学到不少东西。其中大多数资料都是来自网络,我转载时尽可能地表明文章出处与原作者姓名,但由于很多资料经多人转载,已不清楚原作者信息与出处,所以未表明相关…
评 论
链 接

ARM+LINUX 嵌入式博客
http://blog.chinaunix.net/u1/58780/index.html

嵌入式软件
http://blog.csdn.net/embeddedsoft

诚诚恳恳做人踏踏实实编程
http://blog.sina.com.cn/u/1244756857 

和我风格相似的一个blog
http://blogger.org.cn/blog/m…