05 2020 档案
摘要:引言 大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入 程序和数据通常需要长期存储,磁盘是最常用的存储设备 BIOS为这两种外设的I/O提供了最基本的中断例程, 我们已经讲过,键盘输入将引发9号中断,BIOS提供了int 9中断例程。 cpu在9号中断发生后,执行 int 9中断例程,从
阅读全文
摘要:引言 这一章,我们讨论如何有效合理地组织数据,以及相关地编程技术。 本章中,我们要用到这种标号,先进行如下介绍 前面地课程中,我们一直在代码段中使用标号来标记指令、数据、段的起始地址。 比如:下面的程序将code段中的a标号处的8个数据累加,结果存储到b标号处的字中。 程序中,code、a、b、st
阅读全文
摘要:引言 以前我们讨论的都是cpu对指令的执行。我们知道,cpu在计算机系统中,除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接受他们的输入,向他们进行输出。 也就是说,cpu除了有运算能力外,还要有I/O能力。 15.1接口芯片和端口 第14章我们讲过,在pc系统的接口卡和主板上,装有
阅读全文
摘要:cpui可以直接读写3个地方的数据 1)cpu内部的寄存器 2)内存单元 3)端口 这一章,我们讨论端口的读写 对端口的读写不能用mov、push、pop等内存读写指令。 端口的学些指令只有两条: in和out 分别用于从端口读取数据和往端口写入数据。 访问端口: in al,60h;从60h号端口
阅读全文
摘要:引言 中断信息可以来自cpu的内部和外部,当cpu的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。 13.1 int指令 int格式:int n,n为中断类型码,它的功能是引发中断过程。 cpu执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下: 1)取
阅读全文
摘要:引言: 中断的意思是指,cpu不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息。 注意,我们这里所说的中断信息,是为了便于理解而采用的某种逻辑上的说法。它是对几个具有先后顺序的硬件操作所产生的事件的统一描述。 当cpu的内部有什么事情发生的时候,将产生需要马上处理的中断信息呢? 对于80
阅读全文
摘要:同add、sub指令一样,cpu在执行cmp指令的时候,也包含两种含义:进行无符号数运算和进行有符号数运算。 所以利用cmp指令可以对无符号数进行比较,也可以对有符号数进行比较。 下面我们来看以下如果用cmp来进行有符号数比较时,cpu用哪些标志位对比较结果进行记录。 我们以cmp ah,bh为例进
阅读全文
摘要:8086cpu的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。 我们已经使用过8086cpu的ax、bx、cx、dx、si、di、bp、sp、ip、cs、ss、ds、es等13个寄存器了。 本章中的标志寄存器(以下简称flag)是我们要学习的最后一个寄存器。 flag和其他寄存器
阅读全文
摘要:引言: call和ret都是转移指令,他们都修改ip,或同时修改cs和ip。 他们经常被共同用来实现程序的设计 10.1 ret和retf ret指令用栈中的数据,修改ip的内容,从而实现近转移。 retf指令用栈中的数据,修改cs和ip的内容,从而实现远转移; 可以看出,如果我们用汇编语法来解释r
阅读全文
摘要:9.7jcxz指令 jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对ip的修改范围都为-128~127 指令格式:jcxz 标号 (如果cx=0,则转移到标号处执行) jcxz 标号 指令操作: 当cx=0时,ip=ip+2位位移 8位
阅读全文
摘要:8086cpu的转移指令分为以下几类: 无条件转移指令(如:jmp) 条件转移指令 循环指令 过程 中断 9.1 操作符0ffset 操作符offset在汇编语言中是由编译器处理的符号,他的功能是取得标号的偏移地址。 9.2 jmp指令 jmp为无条件转移,可以只修改ip,也可以同时修改cs和ip
阅读全文
摘要:8.7 div指令 div是除法指令,使用div做除法的时候: 除数:8位或16位,在寄存器或内存单元中 被除数:(默认)放在ax或dx和ax中 结果: 运算 8位 16位 商 al ax 余数 ah dx div指令格式: div reg div 内存单元 div byte ptr ds:[0]
阅读全文
摘要:本章对前面的所有内容是具有总结性的。我们知道,计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中: 1)处理的数据在什么地方 2)要处理的数据有多长? 这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。 为了描述上的简洁,在以后的课程中,我们将使用两个描述性的符
阅读全文
摘要:7.10 不同的寻址方式的灵活应用 如果我们比较一下前面用到的几种定位内存地址的方法(可称为寻址方式),就可以发现有以下几种方式: 1)[idata]用一个常量来表示地址,可用于直接定位一个内存单元。 2)[bx]用一个变量来表示内存地址,可用于间接定位一个内存单元。 3)[bx+idata]用一个
阅读全文
摘要:引言 前面,我们用[0]、[bx]的方法,在访问内存的指令中,定位内存单元的地址。 在这一章中,我们主要讲解一些更灵活的定位内存地址的方法和相关的编程方法 首先我们介绍两条指令and和or,因为我们下面的例子中要用到他们。 1)and指令:逻辑与指令,按位进行与运算。 如mov al, 011000
阅读全文
摘要:前面我们写的程序中,只有一个 代码段 现在有一个问题是: 如果程序需要用其他空间来存放数据,我们使用哪里呢? 第5章中,我们讲到要使用一段安全的空间。 我们说0:200~0:300是相对安全的 可是这段空间的容量只有256个字节,如果我们需要的空间超过256个字节,该怎么办呢? 下面我们将以这样的顺
阅读全文
摘要:[bx]是什么呢? 和[0]有些类似,[0]代表内存单元,它的偏移地址是0. 我们要完整的描述一个内存单元,需要两种信息: 1)内存单元的地址 2)内存单元的长度(类型) 我们用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如
阅读全文
摘要:在WIN10环境下,运行汇编程序不是很简单,当然,如果你用一些集成环境下的ide去运行汇编的话,那会非常方便,就和C/C++的编译器一样方便,但是在这里,我们主要说下,如何在dosbox下运行汇编程序,这还是稍微麻烦些的。 首先,编写你的汇编程序,你可以用记事本,也可以用notepad++等等的工具
阅读全文
摘要:一个汇编语言程序从写出到最终执行的简要过程: 编写--》编译--》连接--》执行 原程序中的程序: 汇编源程序: 伪指令(编译器处理) 汇编指令(编译为机器码) 程序:原程序中最终由计算机执行、处理的指令或数据 4.2 源程序 标号 一个标号指代了一个地址 codesg:放在segment的前面,作
阅读全文
摘要:3.6 栈 我们研究栈的角度: 栈是一种具有特殊的访问方式的存储空间。它的特殊性就在于,最后进入这个空间的数据,最先出去。 栈有两个基本的操作:入栈和出栈 入栈:将一个新的元素放到栈顶 出栈:从栈顶取出一个元素 栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。 栈的操作规则:LIFO(后进先
阅读全文
摘要:3.1内存中字的存储 在0地址处开始存放20000(4E20H) 0号单元是低地址单元,1号单元是高地址单元 问题: 1)0地址单元种存放的字节型数据是多少? 20H 2)0地址单元中存放的字型数据是多少? 4E20H 3)2地址字单元中存放的字节型数据是多少? 12H 4)2地址单元中存放的字型数
阅读全文
摘要:2.4 物理地址 CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。 每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。 2.5 16位结构的CPU 概括的将,16位结构描述了一个CPU具有以下几个方面特征: 1、运算器一次最多可以处理1
阅读全文
摘要:为了便于研究信号的传输和处理问题,往往将信号分解为一些简单(基本)的信号之和,分解角度不同,可以分解为不同的分量 分解为直流分量和交流分量 分解为偶分量和奇分量 分解为实部分量和虚部分量 分解为冲激函数的线性组合 一、分解为直流分量与交流分量 二、偶分量和奇分量 三、实部分量与虚部分量 四、冲激函数
阅读全文
摘要:这道题是动态规划,找到状态转移方程就行了, 这题就是从左上角走到右下角,求共有多少条路径,那我们可以把这个问题细化,原题是从(0,0)走到(n,m),那如果从(0,0)走到(1,1)有几条路径?很容易知道是两条,第一条是(0,0)走到(0,1),再到(1,1),第二条是(0,0)走到(1,0),再到
阅读全文
摘要:1.4.1计算机网络拓扑的定义 1.拓扑结构 拓扑结构先把实体抽象为与其大小、形状无关的点,并将连接实体的线路抽象为线,进而研究点、线、面之间的图形关系。 2.计算机网络拓扑的定义 我们将通信子网中的通信处理机和其他通信设备抽象为节点;通信线路抽象为线路,而将节点和线路连接而成的几何图形称为网络的拓
阅读全文
摘要:我们可以从传统计算机网络结构和现代计算机网络结构两个层面去认识计算机网络的结构。 1.3.1传统的计算机网络结构 计算机网络技术是计算机处理技术和通信技术的结合。因此,从传统观点看计算机网络的基本结构按照逻辑功能可以划分为数据处理与数据通信两大部分;即分为资源子网和通信子网两部分。 1.3.1.1计
阅读全文
摘要:1.1计算机网络概述 计算机网络是计算机和通信技术这两大现代技术密切结合的产物。它代表了当代计算机体系结构发展的一个极其重要的方向。计算机网络技术包括了硬件、软件、网络体系结构和通信等多种技术。 可以将计算机网络的形成与发展进程分为以下4代 1.第一代:面向终端的计算机网络 第1代计算机网络的发展阶
阅读全文
摘要:首先审题,题目中提到 每次它都生成一个以前未出现过的“最小”的排列。其实这句话的意思就是说,我这个日期每天都会变化,每次变化后的排列都是以前没出现过的,也就是不会有重复的排列,然后这个日期还是除了以前出现过的排列之外的最小的排列,也就是说啊,我这个日期是按照一定规律来变化的,第一天是字典序最小,第二
阅读全文
摘要:1 #include<iostream> 2 #include<cstdio> 3 #define inf 0x3f3f3f3f 4 using namespace std; 5 int map[105][105],a[105]; 6 int main(){ 7 int n; 8 scanf("%d
阅读全文