07 2013 档案
摘要:(1)将下面程序保存为t1.asm,生成可执行文件t1.exe。assume cs:codesgcodesg segment mov ax,2000H mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00H int 21Hcodesg endsend(2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶内容。step 0:通过debug t1.exe加载程序后:ax=0000H;bx=0000H;c...
阅读全文
摘要:4.1一个源程序从编写到执行的过程第一步:编写汇编源程序;第二步:对源程序进行编译和连接:编译器进行编译,生成目标文件,连接器对目标文件进行连接,生成可执行文件;第三步:执行可执行文件。4.2源程序汇编语言源程序中有两种指令:一种是汇编指令,一种是伪指令。汇编指令对应有机器码,可以被编译为机器指令;而伪指令是由编译器来执行的指令,是辅助编译工作的指令,并不转化成机器码,更不会被执行。程序返回:一个程序要被执行,首先要被加载到内存,然后将CPU控制权交给该程序。比如对于单任务操作系统DOS下,若P1正在执行,要执行P2的话,则P1先要将P2加载到内存,将CPU控制权交给P2,然后P2开始运行,P
阅读全文
摘要:3.1内存中字的存储一个字(word)的长度为16位,即2个字节,而内存单元为单字节,所以要存储一个字长的数据,需要两个内存单元,并且字的高位存储在高地址单元,字的低位存储在低地址单元。比如数据:1188H,为16位数据,即一个字长,要将其存储在编号为0000H开始的内存中,那么编号为0000H的内存单元里存放88H,0001H的内存单元里存放11H。3.2DS和[address]8086CPU中的DS寄存器通常用来存放要访问的数据的段地址,比如要读取地址为10000H单元的内容,可以用如下代码:mov bx,1000Hmov ds,bxmov ax,[0] //这里偏移地址为0,默认段地址在
阅读全文
摘要:一个典型的CPU由运算器、控制器、寄存器等部件组成,部件之间靠内部总线连接。运算器进行信息处理,寄存器进行信息存储;控制器控制各部件进行工作,内部总线连接各部件以进行数据的传输。不同的CPU寄存器的个数和结构都是不尽相同的。2.1通用寄存器以8086为例,其内部所有寄存器都是16位的,即两个字节。其中AX、BX、CX、DX这4个通常存放一般性的数据,称为通用寄存器。AX的低8位(0~7位)构成一个8位寄存器AL,高8位(8~15位)构成一个8位寄存器AH,其他也类似。若:AX=8000H;对于指令add ax,8888H后ax的值是多少?8000H+8888H=10888H,但AX只能保存16
阅读全文
摘要:*检测点1.1(1)1个CPU寻址能力为8KB,那么它的地址总线宽度为(13根)。(2)1KB的存储器有(1024)个存储单元,编号从(0)到(1023)。(3)1KB的存储器可以存储(8K)个bit,(1K)个Byte。(4)1GB、1MB、1KB分别是(2^30,2^20,2^10)Byte。(5)8080、8088、80286、80386地址总线分别为16根、20根、24根、32根,则它们寻址能力分别为:64KB、1MB、16MB、4GB。(6)8080、8088、8086、80286、80386数据总线宽度分别为8根、8根、16根、16根、32根,则它们一次可以传送的数据分别为:1B、
阅读全文
摘要:一、目标描述:1、建立一个通讯录,按姓名字母排序存储联系人信息。2、可显示菜单提供显示、新增、删除、修改等功能。3、显示:(1)显示联系人数量及全部联系人信息;(2)提供特定条件查询指定联系人信息。4、新增:逐步提示对应信息输入。5、删除:删除指定联系人信息。6、修改:提供特定条件修改指定单个联系人信息:先显示原先信息,再提供选项修改对应条目。7、通讯录信息保存在文件中。二、目标分析:1、项目需要排序、新增,则考虑使用二叉搜索树来建立数据堆模型。2、该模型须提供以下具体功能模块:(1)初始化(2)新增项目(3)删除(4)查询有无(5)修改3、信息要保存到文件中,每一次更新信息都要对应到文件中;
阅读全文
摘要:7、编写一个程序,能打开、读入一个文本文件并统计文件中每个单词出现的次数。用改进的二叉搜索树存储单词及其出现的次数。程序读入文件后,会提供一个有三个选项的菜单。第一个选项为列出所有单词连同其出现的次数。第二个选项为让您输入一个单词,程序报告该单词在文件中出现的次数。第三个选项为退出。断断续续编写代码、测试,花了差不多两天时间,总算告成。*建立该问题的二叉树节点模型//BST Model--START------------------typedef struct node{ char word[15]; int times; //出现的次数 struct nod...
阅读全文
摘要:1、修改程序清单17.2,使其既能以郑旭又能以逆序显示电影列表。一种方法是修改链表定义使其可以双向遍历;另一种用递归//双向链表#include#include#include#define TSIZE 45struct film{ char title[TSIZE]; int rating; struct film *prev; struct film *next;};int main(void){ struct film *head=NULL; struct film *temp,*current; char input[TSIZE]; puts("Ent...
阅读全文
摘要:1、定义一个数据类型包含什么?包含数据本身的定义及其操作的定义。2、为什么程序清单17.2中的链表只能沿一个方向遍历?怎样修改struct film的定义才能双向遍历链表?每个节点只记录了下一个节点的地址。strcut film{ char title[TSIZE]; int rating; struct film *previous; //指向前序节点 struct film *next;}3、什么是ADT?抽象数据模型,用户自定义的数据类型,包括数据的存储、组合方式以及可实现的操作。4、QueueIsEmpty()函数以一个指向队列的指针为参数,但它本可以编写成接受一个queue结...
阅读全文
摘要:第十七章 高级数据表示四、二叉搜索树先梳理一下链表和数组方式对几种操作的利弊特点:a.访问:链表形式,必须从首节点开始找起,直到要访问的节点为止,这个称为顺序访问。而数组方式则方便的多,可直接定位到某个元素,这称为随机访问。b.插入/删除:对于链表形式,插入或删除操作仅需要修改前续和后续节点就可以完成;而数组方式需修改被增加或删除元素后面所有的元素。c.查找/搜索:其实也是一种访问形式。一般情况,对于顺序排列的“数据堆”,可以通过"折半查找法”非常效率的进行查找。可折半查找,首先得定位到中间的元素,对数组而言,因为有下标,很容易定位;而对于链表定位中间元素,首先要知道数据堆里总共有多
阅读全文
摘要:第十七章 高级数据表示 三、队列ADT 前面通过一个单链表形式来构建一个数据堆,单链表是通过在结点中设置一个指向下一节点的指针成员来实现组合。对于队列形式,有几个特点:1、依然是线性序列;2、只能在队尾部增加节点;3、只能在队首部删除节点。 1、队列ADT的定义描述 2、队列ADT的操作描述及实现
阅读全文
摘要:第十七章 高级数据表示(一)一、抽象数据类型抽象数据类型(abstract data type:ADT)是指由用户依据实际需求所创建的某种数据类型,它可以是C语言中的任何数据类型,甚至是基本类型,或数组,复杂的就会用到结构。为何说是抽象?是因为ADT并不会是固定某种数据类型,而是依据实际应用需求中提炼出来的某种数据类型的表达方式。那么,如何定义一种ADT呢?在C语言里,定义一种数据类型,包括两方面:一方面是数据存储方式的描述(对取值的限定),另外一方面是对该类型的可使用的操作的定义。比如:定义一个int型数据a,则表示a取值范围是-32768~32767中的整数;同时a可以使用所有对整型数据的
阅读全文
摘要:1、编写一个程序。请求用户键入日、月和年。月份可以是月份号,月份名或月份缩写。然后程序返回一年中到给定日期的总天数。(1)只考虑月份的数字输入:#include#includevoid eatline();int count_days(struct date p);struct date{ int day; int month; char year[4];};int main(void){ struct date yourday; int days; printf("please input yourday's date:\n"); scanf("%d&q
阅读全文
摘要:第14章 结构和其他数据形式基础概念性的内容在谭浩强C的笔记里已经记录过,不再抄记。选出以下重点巩固:1、结构的指定初始化项目C99支持该功能;对于:struct stu{ char name[10]; int age; float score;}可以在定义其结构变量时候初始化该变量的某几项数据,如下:struct stu s1={.name[10]="Tommy",.score=97.5};struct stu s2={.age=15};2、结构数组对于上述stu结构,创建其变量数组:struct stu s[10];成员的引用标识:s[0].name[10];s[9].
阅读全文