
计算机基本概念
rv0p111
之前由于一些原因博客没有更新,现在还是正常更新,继续分享..
展开
-
创建汇编文件进行编译链接
创建汇编文件进行编译链接首先我们要先去创建一个.asm文件,也就是汇编的源程序文件然后用微软的masm5.0汇编编译器进行对源程序的编译 下面就是去执行masm程序,然后对1.asm文件进行编译,其中.lst文件和.crf文件就是编译器将源程序编译为目标文件过程中产生的中间结果 关于1.crf文件的内容 再来看下.lst文件中的内容,我们可以...原创 2018-04-23 19:29:34 · 813 阅读 · 0 评论 -
在屏幕中间依次显示a-z,按下esc改变显示的颜色
利用int 9 中断程序,在屏幕中间依次显示a-z,按下esc改变显示的颜色 程序如下所示assume cs:codedata segmentdb 128 dup(0)data segmentdw 0,0data endscode segmentstart: mov ax,stack ;设置栈 mov ss,ax mov sp,128 ...原创 2018-05-22 04:57:31 · 474 阅读 · 0 评论 -
汇编-按下A键后,松开就显示全屏的A程序
设置一个新的int 9中断程序,在DOS下,按下A键之后,除非不再松开,如果松开,就显示满屏的Aassume cs:codestack segment db 128 dup(0)stack endscode segment start: mov ax,stack ;设置栈段 mov ss,ax mov sp,128...原创 2018-05-22 05:29:23 · 617 阅读 · 0 评论 -
汇编关于查表机制
其实在很多时候,我们在设计算法的时候,有的时候就会考虑利用简捷的算法,用一种映射的关系去解决我们需要解决的部分问题,利用表机制可以在两个数据集合之间建立一种映射关系,使得我们可以用查表的方法去根据给出的数据得到其在另一个集合当中对应的数据,这样做的目的一般来说有以下3个1、为了算法的清晰和简洁2、为了加快运算速度3、为了使程序易于扩充 下面就演示下一个通过表的映射来进行,下面就...原创 2018-05-26 10:57:58 · 3613 阅读 · 0 评论 -
编写包含多个功能子程序的中断例程
assume cs:code,ss:stack stack segment db 128 dup (0)stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,128 push cs pop ds mov ax,0 mov es,ax ;在0:204存放...原创 2018-05-26 13:49:19 · 389 阅读 · 0 评论 -
int 9和int 16h中断-键盘输入、读取
8086PC机当中,键盘的输入将会引发9号中断,BIOS提供了int 9的中断例程。CPU在9号中断发生之后,会去执行int 9中断例程,然后从60h端口当中读取出扫描码,并且将其转换为相应的ASCII码和状态信息,存储在内存的指定的空间(键盘缓冲区或状态字节)当中 一般的键盘输入,在CPU执行完int 9 中断例程之后都放到了键盘缓冲区当中,键盘缓冲区有16个字单元,可以存储15个按键扫...原创 2018-05-26 15:48:39 · 8064 阅读 · 0 评论 -
汇编程序字符串的输入
最基本的字符串输入程序应该具备以下的几个功能1、在输入的同时需要显示这个字符串2、在输入回车符之后,字符串输入结束,也就是这个程序退出3、我们用退格键可以删除字符 编写一个接收字符串输入的子程序,要实现上面三个基本功能,程序的参数有(dh)、(dl),表示显示在屏幕上的行、列的位置,以及我们让ds:si是指向字符串的存储空间,字符串以0位结尾符思路其实就是在字符串的输入的...原创 2018-05-26 18:41:05 · 6526 阅读 · 0 评论 -
intel系列微处理器的3种工作模式
在微机中常常用到的intel系列的微处理器的主要的发展其实就是8080、8086/8088、80186、80286、80386、80486、Pentium、Pentium II、Pentium III、Pentium4 其中8086/8088不具备实现一个完善的多任务操作系统的功能,所以intel开发了80286,80286具备对多任务系统的支持,但是对8086/8088的兼容性做的不好,...原创 2018-05-26 20:08:19 · 2600 阅读 · 0 评论 -
虚拟内存技术
虚拟内存技术允许执行进程不必完全的在内存当中,这种方案的显著的优点就是程序可以比物理内存大,虚拟内存其实就是把内存抽象成了一个巨大的、统一的存储数组,进而会将用户所看到的逻辑内存与物理内存分开 这种技术是允许程序员不受内存存储的限制,虚拟内存也允许进程很容易地共享文件和地址空间,还会为创建进程提供了有效的机制,但是虚拟内存的实现如果我们使用不当的会会大大地降低其的性能其实指令必须都在...原创 2018-05-23 16:56:55 · 1928 阅读 · 0 评论 -
按需调页算法
在选择程序执行的时候,可以将整个程序载入到内存,有的程序是可以在开始执行的时候带有一组用户可选的选项,根据选项是否使用然后再去调入相应的页,这种技术就称为按需调页按需调页常常为虚拟内存系统所采用,对于按需调页虚拟内存,只有程序执行需要时才会去载入页,那些从未访问的页是不会调入到物理内存中的,按需调页系统其实就是进程驻留在第二级存储器上,当需要执行进程的时候,就将它换入内存,这个技术采用的是懒惰...原创 2018-05-23 18:32:51 · 3295 阅读 · 0 评论 -
系统颠簸
如果低优先级的进程所分配的帧的数量少于计算机体系结构所要求的最少数量(其实就是进程完成工作执行的帧的数量),那么必须就要去暂停进程的执行。因为如果进程没有它所需要的活跃使用的帧,那么它会很快产生页错误,这个时候它必须置换某个页,然而,其他所有的页都在使用,它置换一个页,但又立刻再次需要这个页,因此,它就会一而再地去产生页错误,置换一个页,而该页又立即出错且需要立即调进来 这种频繁的页调度行...原创 2018-05-23 19:19:01 · 1784 阅读 · 0 评论 -
预调页和页的大小的设置依据
如果按需调页系统的一个显著特性是当一个进程开始时会出现大量页错误,当重启一个换出进程时,由于其所有页都在磁盘上,所以每个页都必须通过自己的页错误而调入到内存中。预调页就是试图阻止这种大量的初始调页,这种策略就是同时将所需要的所有页一起调入到内存中。比如说Solaris就对小的文件采用预调页的方法如果对于采用工作集合的系统,可以为每个进程保留一个位于其工作集合内的页的列表,如果我们必须要...原创 2018-05-31 17:08:52 · 1365 阅读 · 0 评论 -
键盘的输入处理过程
其实键盘上的每一个键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描,当我们按下了一个键之后,开关会接通,这个芯片就会去产生一个扫描码,扫描码说明按下的键在键盘的什么位置,然后扫描码会被送入主板相关接口芯片的寄存器当中,这个寄存器的端口地址为60h,也就是说我们可以从中去读取出键盘的输入的扫描码,比如说in al,60h 就是从端口60h读出键盘的输入当我们松开按下键的时候...原创 2018-05-22 04:34:09 · 5486 阅读 · 0 评论 -
CPU的外中断
CPU其实除了可以执行指令,进行运算之外还可以对外部设备进行控制,能接收它们的输入,向它们进行输出,也就是说CPU除了有运算能力还应该有I/O的能力,就比如说我们按下键盘上的一个键,CPU要对它进行处理,就比如说我们在屏幕上看到的出现的’a’其实就是CPU将从键盘上输入的键所对应的字符送到显示器上的 在PC系统的接口卡和主板上,装有各种接口芯片,这些外设接口芯片的内部是有若干个寄存器的,C...原创 2018-05-22 01:05:43 · 1195 阅读 · 0 评论 -
访问CMOD RAM 显示当前日期时间
以”年/月/日 时:分:秒”的格式,显示当前的日期、时间” 这里需要注意的是CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元之外,不要向其他的单元写入内容,否则的话就会引起一些系统错误assume cs:code,ds:datadata segment db "YY/MM/DD HH:MM:SS" ;模板格式 db 9,8,7,4,2,0 ;存...原创 2018-05-20 21:18:07 · 469 阅读 · 0 评论 -
关于CPU寄存器和高速缓存的简单介绍
关于CPU寄存器的简单介绍最近浅显的学习了下这方面的知识,所以目前也想去总结一下 CPU除了控制器、运算器等器件还有一个重要的部件就是寄存器。其中寄存器的作用就是进行数据的临时存储。CPU的运算速度是非常快的,为了性能CPU在内部开辟一小块临时存储区域,并在进行运算时先将数据从内存复制到这一小块临时存储区域中,运算时就在这一小快临时存储区域内进行。我们称这一小块临时存储区域为寄存...原创 2018-04-21 09:44:29 · 7828 阅读 · 0 评论 -
关于bx和loop的汇编习题
1、向内存0:200~0:23F依次传送数据0~63(3FH),用汇编语言写出来assume cs:codecode segment mov ax,0020h mov ds,ax mov bx,0 mov cx,64 mov dx,0s: mov [bx],dx inc bx inc dx loop s ...原创 2018-04-25 14:40:34 · 373 阅读 · 0 评论 -
CPU内中断-int引发中断
int指令的格式为int n,其中n为中断类型码,它的功能就是引发中断过程,执行过程如下所示1、取中断类型码n2、标志寄存器入栈,IF=0,TF=03、CS、IP入栈4、(IP)=(n*4),(CS)=(n*4+2),做的就是去执行n号中断的中断处理程序assume cs:codecode segment start:mov ax,0b800h mov ...原创 2018-05-18 14:13:44 · 911 阅读 · 0 评论 -
利用8086汇编写一个word型数据的平方
问题如下所示 assume cs:codecode segment start: mov ax,cs mov ds,ax mov si,offset sqr ;sqr为si的起始地址 mov cx, offset sqrend-offset sqr ;此处偏移相减sqrend减去sqr处 mov ...原创 2018-05-18 15:10:32 · 770 阅读 · 0 评论 -
利用中断程序将小写字母转换为大写字母
下面需要去转换的数据是将conversation转换为大写assume cs:code,ss:stack,ds:datadata segment db 'conversation',0data endsstack segment db 96 dub(0)stack endscode segment start:mov ax,cs ...原创 2018-05-18 16:04:24 · 844 阅读 · 0 评论 -
自定义loop指令-在屏幕中间显示80个!
我们需要自己定义一个loop指令,然后在屏幕中间去显示80个!,loop指令其实做的事情就是一个短转移指令做的时候就是(cx)=(cx)-1,如果cx!=0,那么就让(IP)=(IP)+8位位移,所以我们下面需要准备的就是一个是用cx来放循环的次数,然后还有就是用bx来存放位移 程序如下所示assume cs:codecode segment start:mov a...原创 2018-05-18 18:27:23 · 562 阅读 · 0 评论 -
写一个7ch中断程序去完成显示data段以0结尾字符串
这里我们需要去用到7ch中断程序去完成jmp near ptr s指令的功能,然后用bx向中断程序去传送转移的位移,然后相当于就是去改变了IP寄存器的值assume cs:code,ds:datadata segment db 'conversation',0data endscode segment start:mov ax,cs mov ...原创 2018-05-18 18:50:42 · 393 阅读 · 0 评论 -
编译链接两个.c文件然后执行
关于clang的编译链接首先我们可以先去准备两个.c文件 test.c文件内容如下所示#include <stdio.h>void test1();int main(){ printf("Hello World!"); test1(); return 0;} test1.c文件内容如下所示void test1()...原创 2018-04-28 14:58:14 · 3096 阅读 · 0 评论 -
利用中断程序在屏幕2、4、6、8行显示4句英文诗
利用中断程序在屏幕2、4、6、8行显示4句英文诗 这里先介绍一下BIOS当中的int 10h的中断程序,这个中断程序主要是拿来设置光标位置功能的mov ah,2 ;设置光标mov bh,0 ;设置在第0页mov dh,5 ;dh当中放行号mov dl,12 ;dl放列号int 10h 下面我们再看看DOS提供的int 21h中断程序,这个的功能就是在光标位置显示字符...原创 2018-05-20 13:30:02 · 459 阅读 · 0 评论 -
计算机外部寄存器(端口)概念
一般来说各种存储器都和CPU的地址线、数据线、控制线相连,CPU在操控它们的时候都要把它们当作内存来对待,把它们总地会去看做是一个由若干存储单元组成的逻辑存储器,这个逻辑存储器,我们把它称为内存地址空间 在PC机系统当中,和CPU通过总线相连的芯片除了各种的存储器之外,其实还有些其他的芯片,比如说下面三种1、各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作2...原创 2018-05-20 16:27:26 · 4696 阅读 · 0 评论 -
CMOS RAM芯片
在PC机当中,有一个CMOS RAM芯片,我们一般简称为CMOS,这个芯片的特征如下所示 1、包含一个实时钟和一个有128个存储单元的RAM存储器,关机后其内部的实时钟还是可以正常工作的,RAM当中的信息不会丢失2、这个芯片常保存计算机基本启动信息(如日期、时间、启动设置等)的芯片,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设...原创 2018-05-20 20:41:50 · 5585 阅读 · 0 评论 -
32位系统和64位系统的区别
简单概述1、32位系统和64位系统的区别:当时设计的定位是不同的,64位操作系统的设计定位是满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域 这些领域的共同特点就是需要有大量的系统内存和浮点性能,简单地说,64位操作系统是为高科技人员使用本行业特殊软件的运行平台所设计的2、安装要求的配置不同,64位操作系统只能安装在64位的电脑上,CPU必须是...原创 2018-07-21 10:16:22 · 2029 阅读 · 0 评论