微机原理
文章平均质量分 63
qq_35212671
这个作者很懒,什么都没留下…
展开
-
8086 SS 和 SP 寄存器
SS 寄存器和 SP 寄存器:根据前面对栈的介绍,相信各位对栈也肯定是有一定了解了的,更何况,估计大家也是职场打滚多年的,要是栈都没用过的话,那也确实蛮悲剧的 ,所以,我在这里也不会对栈做十分详细的介绍了,但是,最基本的介绍还是要的,毕竟在底层的话,不像高级语言那么方便,可以直接一个 Stack 就 OK 的,在底层涉及的是栈在内存中的具体实现 。不知道原创 2016-10-08 23:15:38 · 22243 阅读 · 1 评论 -
8086指针寄存器
指针寄存器(BP,SP):BP 寄存器:8086 CPU 中的指针寄存器包括两个,即 SP 和 BP ,在这里呢,我先只对 BP 寄存器做介绍,因为 SP 寄存器实质上必须和 SS 段寄存器一起使用,所以,我将会把 SP 寄存器留到后面和 SS 段寄存器一起作介绍。BP (Base Pointer)也就是基指针寄存器,它和其他的几个用来进行寻址操作所使用的寄存器(原创 2016-10-05 22:19:14 · 4848 阅读 · 0 评论 -
8086数据寄存器介绍
通用寄存器在 8086 CPU 中,通用寄存器有 8 个,分别是 AX,BX,CX,DX,SP,BP,SI,DI 下面介绍这几个通用寄存器:数据寄存器(AX,BX,CX,DX):数据寄存器有 AX,BX,CX,DX 四个组成,由于在 8086 之前的 CPU 为 8 位 CPU,所以为了兼容以前的 8 位程序,在 8086 CPU 中,每一个数据寄存器都可以原创 2016-10-04 18:27:30 · 11182 阅读 · 1 评论 -
8086指令
一、传送指令mov解释一下:mem(主存),imm(立即数),reg(寄存器),seg(段寄存器),DST(目的操作数),SRC(源操作数)。(以后都这样)。mov DST,SRC ;就是将(SRC)->DST。例如:mov al,4 ;将十进制4,转换成的16的4,然后放到寄存器al里面,(转载 2016-10-27 22:14:41 · 2661 阅读 · 0 评论 -
8086指令(II)
算术运算指令①加法类指令②减法类指令③乘法指令④除法指令⑤BCD吗指令一、加法类指令首先我么们先看加法类指令三个(add,adc,inc)1)不带进位位的加法指令ADDadd用来执行2个字节或2个字的相加操作,运算时不考虑CF位ADD DST,SRC ;DSTAD转载 2016-10-28 22:34:45 · 763 阅读 · 0 评论 -
8086变址寄存器
变址寄存器(SI,DI):首先,变址寄存器和上面介绍的指针寄存器(也就是 BP 和 SP),它们的功能其实都是用于存放某个存储单元地址的偏移,或者是用于某组存储单元开始地址的偏移,即作为存储器指针使用,当然,由于变址寄存器和指针寄存器都是属于通用寄存器,所以它们也可以保存算术结果或者说是具有暂存数据的功能,但是因为它们不是数据寄存器,所以无法分割成 2 个独立的 8 位寄存原创 2016-10-06 22:19:17 · 6317 阅读 · 1 评论 -
8086 CS和IP寄存器
CS 寄存器 和 IP 寄存器:经过前面对段的介绍,相信各位朋友对段寄存器应该也有一定的了解了,下面将要介绍的是一组非常非常重要的寄存器,即 CS:IP 。CS:IP 两个寄存器指示了 CPU 当前将要读取的指令的地址,其中 CS 为代码段寄存器,而 IP 为指令指针寄存器 。什么叫做指示了 CPU 当前将要读取的指令呢?在 8086 CPU 中,为什么原创 2016-10-07 23:32:22 · 22950 阅读 · 1 评论 -
8086中的指令
一、传送指令mov解释一下:mem(主存),imm(立即数),reg(寄存器),seg(段寄存器),DST(目的操作数),SRC(源操作数)。(以后都这样)。mov DST,SRC ;就是将(SRC)->DST。例如:mov al,4 ;将十进制4,转换成的16的4,然后放到寄存器al里面,(原创 2016-10-20 23:04:42 · 1046 阅读 · 0 评论 -
汇编指令
MOV(传送)指令写法:MOV target,source功能描述:将源操作数source的值复制到target中去,source值不变注意事项:1)target不能是CS(代码段寄存器),我的理解是代码段不可写,只可读,所以相应这地方也不能对CS执行复制操作。2)target和source不能同时为内存数、段寄存器(CS\DS\ES\SS\FS\GS)3)不能将立即数传转载 2016-11-12 23:09:33 · 534 阅读 · 0 评论 -
8086寄存器简介
寄存器(这里讨论的寄存器都是 CPU 中的寄存器,不包括外设上的寄存器)位于 CPU 内部,而内存位于 CPU 外部,而且,寄存器比内存可是珍贵得多啊,就拿内存和硬盘来比,肯定是内存在使用上珍贵得多,是 PC 中的稀有资源,而寄存器是 CPU 中的稀有资源,内存和寄存器相比就像硬盘和内存相比一样 。而对于一个汇编程序员来说,CPU 中主要可以使用的也就是寄存器而已,汇编程序员可以使用指令来原创 2016-10-03 19:54:30 · 1003 阅读 · 0 评论 -
什么是GDT,LDT,GDTR及LDTR?
(1)全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此寄存器,从此以后,原创 2016-10-03 19:48:09 · 4454 阅读 · 0 评论 -
汇编的基础知识介绍
计算机的核心是CPU,负责各种运算,其中又包括运算器和寄存器,寄存器中也用来存储数据,但是一般较小,读写速度快,是运算器直接操作的对象;CPU之外有存储器,存储器一般指内存,分为可读写的RAM和只可读的ROM;其余各种外设比如显卡、网卡等都通过主板上的总线与CPU相连,CPU通过总线同存储器以及各种外设中的芯片(进而同外设中的存储器)进行数据通信。 存储器按字节大小分为存储单元,例如一个字原创 2016-10-03 19:36:50 · 398 阅读 · 0 评论 -
8086 DS 和 ES 寄存器
DS 寄存器和 ES 寄存器:DS 寄存器和 ES 寄存器都属于段寄存器,其实它们和 CS 寄存器以及 SS 寄存器用起来区别不大,既然是段寄存器的话,自然它们存放的就是某个段地址了 。通过上面对基础知识的介绍呢,我们已经知道,如果 CPU 要访问一个内存单元时,我们必须要提供一个指向这个内存单元的物理地址给 CPU ,而我们也知道在原创 2016-10-09 21:29:17 · 26883 阅读 · 5 评论 -
8086 中的栈
一、管程来解决生产者/消费者问题1)[objc] view plain copy "font-size:18px;">Struct Monitor { condition NF,NE; int Buffer[n]; int k = 0,t = 0,count = 0; d原创 2016-10-11 21:35:46 · 6422 阅读 · 0 评论 -
8086寻址方式
一、寻址方式形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类: •指令寻址方式、操作数寻址方式操作数的寻址方式: •形成操作数的有效地址(EA)的方法在8086/8088中,操作数在内存中的有效地址是段的偏移地址。1)立即数寻址方式操作数作为指令的一部分存放在操作码之后的内原创 2016-11-02 23:29:16 · 1375 阅读 · 0 评论 -
汇编范例
assume cs:codesgcodesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax,4c00H原创 2016-10-12 22:41:55 · 424 阅读 · 0 评论 -
数据的多段存储
举例说明8086如何用多个段存储数据:说明:①定义多个段和我们以前讲的定义代码段一样,只是段名不同而已。②程序中有多个段如何访问这些数据呢,以及如何知道这些数据时代码段还是数据段或者堆栈段呢,段名就相当于一个表号,它代表段地址,所以就通过mov ax,data(标号),然后将这个ax传给ds,那就是数据段,传给ss,那就是堆栈段。原创 2016-11-04 00:54:43 · 456 阅读 · 0 评论 -
[BX] 和 loop指令
[BX]寄存器里面存放的是偏移地址。如mov ax,[bx] 将一个内存单元的内容送入ax,内存单元长度为2字节,偏移地址在bx中,段地址在ds中。loop指令的格式:loop 标号,cpu执行loop指令时分两步走,①(cx) = (cx - 1),②判断cx中的值,若不为0转至标号处执行程序,为0则向下执行通常我们用loop指令实现循环,cx中存放循环次数原创 2016-10-13 23:09:52 · 387 阅读 · 0 评论 -
操作系统外壳(shell)
1.通用的操作系统都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统进行工作。2.DOS中有一个程序command.com,这个程序在DOS中称为命令解释器,也就是DOS系统的shell。3.在DOS中,command处理各种输入:命令或要执行的程序的文件名。我们通过command来进行工作的。4.我们知道在DOS中运行一个程原创 2016-10-14 17:20:04 · 6505 阅读 · 0 评论 -
8086逻辑运算和移位
一、逻辑运算指令AND/OR/NOT/XOR/TEST(与,或,非,异或,测试)①与,或,非,异或这边大家都知道,这里不在重复,举几个例子:AND AX,1000H ;AX中的16位数和1000H相与,结果送到AX中。OR AX,00F0H ;AX中的值与00f0相或,结果在AX中NOT AL原创 2016-11-02 00:39:58 · 2588 阅读 · 0 评论