关于“段”的总结

1、各种段基础物理地址=段地址×16+偏移地址做法编程时,可以根据需要将一组内存单元定义为一个段。可以将起始地址为16的倍数,长度为N(N≤64K)的一组地址连续的内存单元,定义为一个段。将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元——在程序中可以完全由程序员安排。三种段数据......

李庆林  1 浏览   0 喜欢   0 评论

栈及栈操作的实现

1、栈结构栈是一种只能在一端进行插入或删除操作的数据结构。栈有两个基本的操作:入栈和出栈。入栈:将一个新的元素放到栈顶;出栈:从栈顶取出一个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的操作规则:LIFO(LastInFirstOut,后进先出)CPU提供的栈机制现今的CPU中都......

李庆林  3 浏览   0 喜欢   0 评论

DS与数据段

1、对内存单元中数据的访问对于8086PC机,可以根据需要将一组内存单元定义为一个段。物理地址=段地址×16+偏移地址;将一组长度为N(N≤64K)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段。例:用123B0H~123B9H的空间来存放数据段地址:12......

李庆林  34 浏览   0 喜欢   0 评论

用DS和[address]实现字的传送

1、要解决的问题:CPU从内存单元中要读取数据要求:CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址;原理:在8086PC中,内存地址由段地址和偏移地址组成(段地址:偏移地址)解决方案:DS和[address]配合;用DS寄存器存放要访问的数据的段地址;偏移地址用[...]形式直接给出例......

李庆林  26 浏览   0 喜欢   0 评论

内存中字的存储

1、内存中字的存储事实:对8086CPU,16位作为一个字问题;16位的字存储在一个16位的寄存器中,如何存储?回答;高8位放高字节,低8位放低字节问题;16位的字在内存中需要2个连续字节存储,怎么存放?回答;低位字节存在低地址单元,高位字节存在高地址单元;例:20000D(4E20H)存放0、1两......

李庆林  45 浏览   0 喜欢   0 评论

jmp指令

1、修改CS、IP的指令事实:执行何处的指令,取决于CS:IP应用:可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令问题:如何改变CS、IP的值?方法1:Debug中的R命令可以改变寄存器的值——rcs,ripDebug是调试手段,并非程序方式!方法2:用指令修改方法3:转移指令jmp2......

李庆林  46 浏览   0 喜欢   0 评论

CS、IP与代码段

1、两个关键的寄存器CS:代码段寄存器IP:指令指针寄存器CS:IP:CPU将内存中CS:IP指向的内容当作指令执行。2、在CS和IP指示下代码的执行8086CPU当前状态:CS中内容为2000H,IP中内容为0000H内存20000H~20009H处存放着可执行的机器代码3、8086PC读取和执行......

李庆林  39 浏览   0 喜欢   0 评论

Debug的使用

1、Debug是什么?Debug是DOS系统中的著名的调试程序,也可以运行在windows系统实模式下。使用Debug程序,可以查看CPU各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行!2、Debug能做什么?用R命令查看、改变CPU寄存器的内容用D命令查看内存中的内容用E命令改变内......

李庆林  46 浏览   0 喜欢   0 评论

内存的分段表示法

1、用分段的方式管理内存8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址。内存并没有分段,段的划分来自于CPU!!!2、同一段内存,多种分段方案(1)段地址×16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;(2)偏移地址为16位,16位地址的寻址能力......

李庆林  50 浏览   0 喜欢   0 评论

确定物理地址的方法

1、物理地址CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。事实8086有20位地址总线,可传送20位地址,寻址能力为1M。8086是16位结构的CPU运算器一次最多可以处理16位的数据......

李庆林  50 浏览   1 喜欢   0 评论

mov和add指令

1、学习汇编指令mov指令:将逗号后面的值(或者寄存器中的值),赋值到逗号前面的寄存器中。add指令:将逗号后面的值(或者寄存器中的值),加上逗号前面寄存器中的值,并保存到逗号前面寄存器中。2、写出汇编指令执行结果例子1:assumecs:codesegcodesegsegmentmovax,4e2......

李庆林  67 浏览   0 喜欢   0 评论

寄存器及数据存储

1、CPU的组成运算器进行信息处理;寄存器进行信息存储;控制器协调各种器件进行工作;内部总线实现CPU内各个器件之间的联系。2、寄存器是CPU内部的信息存储单元8086CPU有14个寄存器:通用寄存器:AX、BX、CX、DX;变址寄存器:SI、DI;指针寄存器:SP、BP;指令指针寄存器:IP;段寄......

李庆林  67 浏览   0 喜欢   0 评论

指针类型

1所有指针变量的大小(宽度)都是固定的1.1为什么指针变量的大小都是一样的?因为存储空间所有字节的指针都是相同“宽度”的,比如,如果地址宽度是32位的话,那么每个字节的地址都是32位的。比如,如果地址宽度是64位的话,那么每个字节的地址都是64位的。既然所有字节的指针宽度都是一样的,因此所有指针类型......

李庆林  83 浏览   0 喜欢   0 评论

指针概述

1、指针1.1指针与指针变量1.1.1指针前面说过,指针就是地址,指针和地址是同义词。1.1.2指针变量存放指针的变量就是“指针变量”。1.2*与&1.2.1&(1)&作为双目运算符使用时,为“位与”运算符inta=0x10;intb=0x04;intc=a&b;(2......

李庆林  89 浏览   0 喜欢   0 评论

内存的读写与地址空间

1、CPU对存储器的读写CPU要想进行数据的读写,必须和外部器件进行三类信息的交互:存储单元的地址(地址信息)器件的选择,读或写命令(控制信息)读或写的数据(数据信息)演示机器码:10100000000000110000000016进制:A00300汇编指令:MOVAL,[3]含义:从3号单元读取数......

李庆林  116 浏览   0 喜欢   0 评论

计算机的组成

1、解剖计算机2、计算机的组成CPU是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器(内存)中存放。离开了内存,性能再好的CPU也无法工作。3、指令和数据的表示计算机中的数据和指令,存储在内存或磁盘上。数据和指令,都是二进制信息......

李庆林  131 浏览   0 喜欢   0 评论

由机器语言到汇编语言

1、机器语言与机器指令机器语言是机器指令的集合。机器指令是一台机器可以正确执行的命令。机器指令由一串二进制数表示,例01010000电平脉冲:早期程序员们的工作形态将0、1数字编程的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。例:计算S=768+122......

李庆林  90 浏览   0 喜欢   0 评论

为什么要学汇编语言

1、程序设计语言家谱2、仍被广泛使用,甚至不可替代3、学习汇编语言的理由汇编语言仍在发挥不可替代的作用效率运行效率:开发软件的核心部件,快速执行和实时响应。开发效率:做合适的事,开发效率无敌;底层:计算机及外围设备的驱动程序操作系统的内核嵌入式系统:家用电器、仪器仪表、物联网……汇编语言在学习计算机......

李庆林  110 浏览   0 喜欢   0 评论

数据类型

1、数据的类型(1)空间第一个字节的地址代码、变量、常量空间,往往都是连续的一片字节空间,到底哪一个字节的地址才代表整个空间的地址(指针)呢,我们前面说过,第一个字节的地址是整个空间的指针。(2)如何访问一片连续字节空间只要知道如下几件事即可。1)知道第一个字节的地址2)知道访问到第几个字节结束3)......

李庆林  94 浏览   0 喜欢   0 评论

地址与指针

1.存储空间、符号、地址1.1存储空间1.1.1什么是存储空间就是程序代码和数据的存放空间,笼统可以分为如下两种情况。没有运行时:存储在硬盘(外存)上,所以此时的存储空间为硬盘。运行时:代码和数据存放在内存上,供cpu访问。当然程序在运行时,还需要用到寄存器和cache,寄存器和cache同样也是存......

李庆林  118 浏览   0 喜欢   0 评论