编程
文章平均质量分 70
caisam
好好学习,天天向上
展开
-
集合的运算
//*选作内容(1)集合元素的判定和子集判定运算(2)求集合的补集(3)集合的混合式运算表达求值(4)集合的元素类型推广到其他类型,甚至任意类型*//*测试数据: (1)Set1 = "magazine",Set2 = "paper", Set1∪Set2 = "aegimnpra",Set1∩Set2 = "ae",Set1 - S转载 2013-12-17 15:02:27 · 1394 阅读 · 0 评论 -
关于引导程序第一条指令为什么是org 07c00h,org到底是干嘛的
原文链接在此对原作者表示感谢!转载 2014-07-14 15:57:48 · 1186 阅读 · 1 评论 -
单链表---直接插入排序
####记录####在链表中解决从小到大排序的问题!解决这个问题的方法很多直接排序代码:#include#includetypedef struct lNode{int data;struct lNode *next;}linklist;linklist *create( linklist原创 2014-09-12 23:43:27 · 2031 阅读 · 0 评论 -
汇编语言调用Linux系统调用read和write
.section .dataUserMsg:.ascii "Please input the message:"LenOfUserMsg:.equ lenMsg, LenOfUserMsg - UserMsg#.section .bss# .lcomm resb, 200OutputMsg:.ascii "This is your input:"LenOfOu原创 2014-10-09 17:25:32 · 4761 阅读 · 3 评论 -
linux编写终端注销小程序
一.注销过程1.基本步骤:(有关 utmp 的内容参见 :who命令的编写)注销过程中,系统改变了文件utmp中相应的登录记录,注销过程如下:(1).打开文件utmp;(2).从utmp中找到包含你所在终端的登录记录;(3).对当前记录做修改;(4).关闭文件;其中要注意的是第3步:对当前记录做修改。2.对当前记录做修改:转载 2014-06-17 15:25:19 · 780 阅读 · 0 评论 -
通过cpuid指令获取CPU Verdor ID
#cpuid.s simple program to extract the processor Vendor ID#HOw TO complie and run#as -o cpuid.o cpuid.s#ld -o cpuid cpuid.o.section .dataoutput: .ascii "The processor Vendor ID is 'xxx原创 2014-09-21 11:20:46 · 3020 阅读 · 0 评论 -
《汇编语言程序设计》摘录--第四章
作者:(美)布鲁姆 出版社:机械工业出版社转载 2014-11-20 20:35:46 · 1071 阅读 · 0 评论 -
**4.4**在汇编语言中使用C语言库函数
**4.4**在汇编语言中使用C语言库函数上一个程序使用Linux系统调用显示CPU厂商信息。还有一种不使用系统调用的方法,那就是使用C语言库函数。接下来通过调用C库函数的printf()函数,编写一个调用printf()函数的新cpuid.s。*4.4.1*使用printfC库包含很多C程序通用的很多函数。比如exit()和printf()。新的cpuid.s中的Linux系统调转载 2014-11-21 15:37:15 · 1086 阅读 · 0 评论 -
为什么要这样写:readn(),writen()?
这里就不贴代码了。代码来自《UNIX 网络编程》第一卷(3rd edition)P72,P73具体来看看为什么要这样写。对于readn()首先定义了两个size_t的变量:nleft表示还剩下的字节数;nread表示已经读取的字节数接着是一个字符型指针变量:ptr,指向读取的目标缓冲区(ptr = vptr)我们要读取的时n字节的数据,于是就先将赋值:nleft = n;(原创 2015-03-27 22:52:37 · 1555 阅读 · 0 评论 -
二级指针删除单链表
首先创建一个节点typedef struct node{ int data; struct node *next;}Node;然后再创建一个链表,链表元素是由 1 ~ 5 这5个整数除以2得到的余数构成的。创建这个链表依然使用了二级指针。直接在create函数中修改了*head的值,让*head的值是第一个节点。可见这种方法创建的链表不存在大多数教材上得“头结点”这个节点。原创 2015-06-25 22:19:24 · 958 阅读 · 0 评论 -
记录下org指令是干啥的 :D
第一回:org指令时NASM中的一个指令。在《NASM手册》中“org指定程序被载入内存时,程序的起始地址”boot.asm中第一行这样写的:org 07c00h。也许就会联想它的意思就是指定boot程序被加载到内存07c00的位置,产生这样的联想也很正常。但是BIOS本身就规定boot程序要被加载到内存位置07c00的,那 这个org不是多余的吗。也就是说,不要这个org照样原创 2015-07-01 11:01:14 · 3740 阅读 · 0 评论 -
实模式与保护模式解惑之(一)——二者的起源与区别
概述:实模式和保护模式是处理器发展的两个非常重要的阶段。这两个模式下的编程也有着显著的不同,弄明实模式与保护模式的区别是理解操作系统运行原理和编写操作系统的基础。本文主要讲解了实模式和保护模式的区别和保护模式的起源,侧重点在二者寻址方式上的差异。本文来源:实模式与保护模式解惑之(一)——二者的起源与区别1.保护模式的起源 最开始的程序寻址是转载 2014-07-30 19:31:37 · 646 阅读 · 0 评论 -
关于%s 和%c的小小的收获
/****************************关于%s 和%c的小小的收获*今天早上偶尔看到一个函数:*定义在string.h中的*char *strstr(char *s1, char *s2)*作用就是找出s2字符串在s1中第一次出现的位置(不是数字位置)*使用举例:***************************//*******原创 2014-07-11 11:34:31 · 767 阅读 · 0 评论 -
linux配置JDK环境
Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。进入安装目录#cd /home#cp jdk-1_5_0_02-linux-i586.rpm /usr/local#cd转载 2013-12-17 15:09:35 · 751 阅读 · 0 评论 -
Linux命令自己写 — ls
本文基于Ubuntu 12.04.4 (kernel version : 3.11.0-15-generic)这几天在写一个Linux的基础命令——ls。当然最终的效果可能和标准的GUN coreutils所提供的ls有些出入,但是在大致相同的情况下了解其中的原理!它的作用自然是明了的先说说文件的属性相关的文件的基本属性:文件类型,名字,大小,所有者以及所有者所在的组(具体原创 2014-06-25 18:57:13 · 1079 阅读 · 0 评论 -
【Linux学习笔记】Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)
原文在这里:点击打开在此感谢原作者的创作!!转载 2014-07-18 19:34:37 · 611 阅读 · 0 评论 -
Linux C语言内联汇编使用
原文本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。参考资料:《Linux内核完全剖析》,《新版汇编语言程序设计》,《Linux C编程一站式学习》 最近要改个C语言算法的关键部分用汇编语言实现,Linux里嵌入汇编基本使用AT&T汇编,比如Linux系统的启动部分用的就是AT&T汇编 。以前学过AT&T汇编,但学过转载 2014-07-18 17:22:43 · 1035 阅读 · 0 评论 -
linux fork函数的精辟解说
作者:转载 2014-07-22 11:01:34 · 598 阅读 · 0 评论 -
linux命令自己写--pwd
其实这个命令不是非常常用的命令,至少对于我来说这个命令的使用频率不原创 2014-07-05 11:19:17 · 955 阅读 · 0 评论 -
unix/linux编程实践教程读后感(2)
从最开始的who命令,然后ls, pwd,原创 2014-07-05 18:17:00 · 638 阅读 · 0 评论 -
clang和gcc的对比,来看看哪个更具有优势!
测试平台:ubuntu 12.04.4 64bit原创 2014-06-16 17:39:06 · 6410 阅读 · 0 评论 -
unix/linux编程实践教程读后感(1)
一周之前书到手了,其实之前买了原创 2014-06-17 15:58:58 · 1215 阅读 · 0 评论 -
fstat、stat和lstat 区别(转)
stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。1首先隆重介绍的是一个非常重要的”VIP”人物,他是fstat, stat和lstat三者都要用到的一个结构体类型,名字叫做struct stat。可以说,没有这个struct stat的支持,上述三个系统调用将寸步难行。这个s转载 2014-06-19 11:40:22 · 810 阅读 · 0 评论 -
ubuntu配置vim+youcompleteme记录
首先安装vundle如果没有git,要安装git命令:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle然后把如下信息添加到 ~/.vimrc,如果没有那么新建一个命令(假设没有):touch ~/.vimrcvim .vimrc添加的信息:set nocompatible原创 2014-06-16 17:09:50 · 2327 阅读 · 2 评论