随笔 - 342  文章 - 0 评论 - 49 阅读 - 147万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  Assembly

X86架构与ARM架构比较
摘要:引言 CPU是怎样运作的? CPU的运作与人脑的运作差不多。先谈一下人这个系统的工作方式。眼镜、耳朵、舌头、皮肤等等感觉器官接收到“触觉”,把信息传给大脑,大脑把信息处理后,把处理结果送给手、脚、嘴等执行器官就可以运动了。 人脑的功能就是从某个感觉器官读取信息,处理信息,然后再把结果送给执行器官。 一个完整的系统与人这个系统差不多,传感器接收数据,再把数据传给CPU(CPU按照一定的时序、协议从内存读数据),CPU读取到数据并处理,把处理结果送给执行机构就行了(实际上CPU就是按照一定时序、协议向内存单元写数据)。 CPU从内存中获取数据,处理数据,再把结果送到内存中去。一、指令集架构... 阅读全文
posted @ 2014-02-28 13:44 amanlikethis 阅读(9814) 评论(0) 推荐(0) 编辑
研究不定数量参数的函数并实现一个printf函数
摘要:一、前提知识1、如何传递参数(主函数)a、函数的参数是通过栈传递,而且是从右到左依次入栈b、即使是char型变量,在传递参数时,也是占用两个字节,因为push操作是两个字节为单位的。 c、showchar('a',2)这样的传入两个常数,也会在堆栈中开辟两个空间,也即对应两个实参变量。2、函数如何接收参数(子函数)a、函数接受形参是通过从栈中取的b、通过BP可以找到传入参数的值,BP+4是第一个参数,BP+6是第二个参数......取参数是从左到右取的 3、如何释放参数(主函数) 释放参数可以通过多次pop来实现。有时是通过“add sp,+数值”来实现的。二、研究一个简单的不 阅读全文
posted @ 2014-02-27 20:15 amanlikethis 阅读(1633) 评论(0) 推荐(0) 编辑
TC2.0中怎样调用汇编程序
摘要:转载于:TC2.0中怎样调用汇编程序一、概述 TC是美国BORLAND 公司在IBM PC机上开发的一个高效、优化的C编译程序,它自带高效的全屏幕编辑程序,在集成开发环境下可支持编辑、编译、连接调试和运行等过程连续完成。 TC提供了与汇编语言的接口和在C程序中直接插入汇编指令代码的功能,支持以“远调用”和“近调用”方式来调用使用汇编语言编写的函数。 TC调用汇编语言函数时,对汇编语言的编写要求十分严格,并且对大小写字母也有严格的区分。如果在编写供TC调用的汇编函数时不按照规定好了的格式书写,调用是不会成功的。二、操作步骤下面先举一个在TC中调用汇编函数的例子,然后再详细讲解怎样做才能成功。步. 阅读全文
posted @ 2014-02-27 11:19 amanlikethis 阅读(757) 评论(0) 推荐(0) 编辑
通过搭建一个精简的C语言开发环境了解一个C程序的执行过程
摘要:一、如何搭建一个精简的C语言开发环境准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录1、在C盘建立一个目录minicc:\ md minic2、从解压的目录中将以下文件拷贝到c:\minic中 其中TC.EXE是在d:\tc2.0\tc目录下,而COS.OBJ、EMU.LIB、MATHS.LIB、GRAPHICS.LIB、CS.LIB是在D:\tc2.0\tc\lib目录中的。3、软件配置 选择菜单项“Options”中的“Directories”选项,对TC的工作路径进行设置,将所有的路径都设置为“c:\minic”。然后用“Save options”选项保存设置。 生.. 阅读全文
posted @ 2014-02-27 11:14 amanlikethis 阅读(943) 评论(0) 推荐(0) 编辑
用汇编语言研究C语言的全局变量、局部变量、参数、返回值放在哪里
摘要:前提知识 c0s调用main函数的地址: 11ah main函数的连接地址: 01fah一、全局变量与局部变量测试程序int a1,a2,a3;void f(void);void g(void);void h(void);main(){ int b1,b2,b3; a1 = 0xa1;a2 = 0xa2;a3 = 0xa3; b1 = 0xb1;b2 = 0xb2;b3 = 0xb3;}void f(void){ int c1,c2,c3; a1 = 0x0fa1;a2 = 0x0fa2; a3 = 0x0fa3; c1 = 0xc1; c2 = 0... 阅读全文
posted @ 2014-02-27 09:56 amanlikethis 阅读(8008) 评论(0) 推荐(1) 编辑
不定参数函数原理以及实现一个属于自己的printf函数
摘要:一、不定参数函数原理二、实现一个属于自己的printf函数参考博文:王爽汇编语言综合研究-函数如何接收不定数量的参数 阅读全文
posted @ 2014-02-27 09:51 amanlikethis 阅读(501) 评论(0) 推荐(0) 编辑
《汇编语言》课程设计
摘要:一、目的 知行合一,就是说学以致用。《汇编语言》这本书从13年春节开始看,中间由于众多事物中断,知道14年春节才看完。但是,百看不如一练,借着刚看完书,对汇编语言还很热的感觉,决定对书中最后的课程设计冲刺一下,作为这本书的结业课。二、课程设计内容1、题目阅读下面的材料:开机后,CPU自动进入到FFFF:0单元处执行,此处有一条跳转指令。CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。如果设为从软盘启动操作系统,则i 阅读全文
posted @ 2014-02-25 10:17 amanlikethis 阅读(1281) 评论(0) 推荐(0) 编辑
进位位(carry)与溢出位(overflow)的区别
摘要:处理器内部以补码表示有符号数,8个二进制位能够表达的整数范围是:+127 ~ -128,16位表达的范围是:+32767 ~ -32768.如果运算结果超出了这个范围,就是产生了溢出;有溢出,说明有符号数的运算结果不正确.例如:3AH + 7CH=B6H,就是58 + 124=182,已经超出-1... 阅读全文
posted @ 2013-10-16 17:46 amanlikethis 阅读(21272) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示