当前位置: 首页 > news >正文

一个虚拟主机如何做两个网站济南做外贸的网站公司吗

一个虚拟主机如何做两个网站,济南做外贸的网站公司吗,常州外贸网站建设,网站什么引导页1、内存中字的存储 2、ds和【address】 CPU要读写一个内存单元的时候#xff0c;必须先给出这个内存单元的地址#xff0c;在8086CPU中#xff0c;内存地址由段地址和偏移地址组成#xff0c; 其中#xff0c;段地址存放在段寄存器DS中#xff0c;DS称作数据段寄存器。…1、内存中字的存储 2、ds和【address】 CPU要读写一个内存单元的时候必须先给出这个内存单元的地址在8086CPU中内存地址由段地址和偏移地址组成 其中段地址存放在段寄存器DS中DS称作数据段寄存器。 如果我们要将内存地址为14A70的内存单元中的数据送入AL中可以用如下的程序段进行 Mov bx1000H    ;把段地址1000H送入bx中。 mov dsbx        ;把bx中的数值送入ds中。 Mov al[4a70]     ;把段地址为1000H偏移地址位4a70H的内存单元中的数据送入al中。 [address]表示一个内存单元内存单元中的address表示偏移地址它的中文翻译就是地址的意思。 内存单元[address]我们可以知道它的地址是多少但它的数值是多少我们并不知道。 3、mov指令 传送指令mov可以完成以下4种传送 1将数据直接送入寄存器。    如mov ax1230H。 2将一个寄存器中的数据送入另一个寄存器。    如mov axbx 3将一个内存单元中的数据送入一个寄存器。    如mov ax[27b0] 4将一个寄存器中的数据送入内存单元中。    如mov [607c]bx 注意不能直接用数据送给段寄存器如mov ds1230H 是错误的必须要用一个寄存器来进行中转。比如 Mov bx1230H Mov dsbx 这样就行了。为什么8086CPU不支持将数据直接送入段寄存器呢这属于8086CPU硬件设计的问题我们只要知道这一 点就行了。 4、add和sub指令 Mov指令有两个操作对象add和sub同样有两个操作对象。 Add为加法指令格式add 操作对象1操作对象2。功能两数相加并把结果保存到操作对象1中。 Add有以下几种形式 Add 寄存器数据    如add ax, 8 Add 寄存器寄存器    如add ax, bx Add 寄存器内存单元    如add ax, [27a0] Add 内存单元寄存器    如add [46e9], bx Sub为减法指令格式sub 操作对象1操作对象2。功能两数相减即从操作对象1减去操作对象2其结果保存到 操作对象1中。 Sub 也有以下几种形式 Sub 寄存器数据    如sub ax, 9 Sub 寄存器寄存器    如sub ax, bx Sub 寄存器内存单元    如sub ax, [b027] Sub 内存单元寄存器    如sub [8601], bx 5、数据段 前面讲过参见2.7节对于8086PC机在编程时可以根据需要将一组内存单元定义为一个段。我们可以将一组长度 为NN≤64KB、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间从而定义了一个数据段。 比如用123B0H~123B9H这段内存空间来存放数据我们就可以认为123B0H~123B9H这段内存是一个数据段长度 为10个字节。 如何访问数据段中的数据呢首先用DS存放数据段的段地址然后用相关的指令访问数据段中的内存单元。 比如将123B0H~123B9H的内存单元定义为数据段现在要累加这个数据段中的前3个单元中的数据代码如下 Mov ax, 123BH Mov ds, ax    ;将123BH送入ds中作为数据段的段地址。 Mov al, 0      ;用al存放累加结果先把al中的数据清零。 Add al, [0]     ;将数据段第一个单元偏移地址为0中的数值加到al中。 Add al, [1]     ;将数据段第二个单元偏移地址为1中的数据加到al中。 Add al, [2]     ;将数据段第三个单元偏移地址为2中的数据加到al中。 在1.5节中我们说过在内存中指令和数据没有任何区别都是二进制信息CPU在工作的时候把有的信息看作指令 把有的信息看作数据那么CPU在什么时候把它看作指令在什么时候把它看作数据呢在2.5节中我们回答了第一个问题现 在可以回答第二个问题了。 答只要把这一段内存单元的段地址放到DS中在用mov、add、sub等访问内存单元的指令时CPU就会将这些内存单 元看作数据来访问。 6、栈 栈是一种具有特殊的访问方式的存储空间它的特殊性就在于最后进入这个空间的数据最先出去。可以用一个盒子和3本书 来描述栈的这种操作方式。 入栈把A放入栈中再把B放入栈中然后再把C放入栈中。就形成了A、B、C 出栈先出栈顶C然后是B然后A 特点先进后出 入栈和出栈。入栈就是将一个新的元素放到栈顶出栈就是从栈 顶取出一个元素。栈顶的元素总是最后入栈需要出栈时又最先被从栈中取出栈的这种操作规则被称为LIFOlast in first out, 后进先出 7、cpu提供的栈机制  现今的CPU中都有栈的设计。8086CPU提供的入栈和出栈指令最基本的两个是push入栈和pop出栈。比如 Push ax 表示将寄存器ax中的数据送入栈中pop ax 表示从栈顶取出数据送入ax。8086CPU的入栈和出栈操作都是以字为 单位进行的。 下面两张图描述了push和pop指令的执行过程。 上面两张图指令的执行过程写成代码如下 Mov ax, 123H Push ax Mov bx, 2266H Push bx Mov cx, 1122H Push cx Pop ax Pop bx Pop cx 注意字型数据用两个内存单元存放高地址单元存放高8位低地址单元存放低8位。 看了上面两张图后现在提出两个问题。问题1我们将10000H~1000FH这段内存当作栈来使用CPU是如何知道这段空 间是栈关于这个问题将在3.10节解答。 问题2push ax等入栈指令执行时要将寄存器中的数据放入当前栈顶单元的上方成为新的栈顶元素pop ax等指令执 行时要从栈顶单元取出数据送入寄存器中。显然push、pop在执行的时候CPU必须要知道哪个单元是栈顶单元可是如 何知道 答8086CPU中有两个寄存器堆栈段寄存器SS堆栈指针寄存器SP栈顶的段地址存放在SS中偏移地址存放在 SP中任意时刻SS:SP指向栈顶元素push和pop指令在执行时CPU从SS和SP中得到栈顶单元的地址。 现在我们可以完整地描述push和pop指令的功能了例如push ax。push ax的执行由以下两步完成 1. SPSP2SS:SP指向当前栈顶前面的单元以当前栈顶前面的单元为新的栈顶。 2. 将ax中的数据送入SS:SP指向的内存单元处SS:SP此时指向新栈顶。 下图描述了push ax的执行过程。 将10000H~1000FH这段空间当作栈段SS1000H栈空间大小为16字节栈最底部的字单元地址为1000:000E任 意时刻SS:SP指向栈顶当栈中只有一个元素的时候SS1000HSP000EH栈为空就相当于栈中唯一的元素出栈后 SPSP2原来为000EH加2后SP0010H所以当栈为空的时候SS1000HSP0010H。 换一个角度看任意时刻SS:SP指向栈顶元素当栈为空的时候栈中没有元素也就不存在栈顶元素所以SS:SP只能指 向栈的最底部单元下面的单元该单元的偏移地址为栈最底部的字单元的偏移地址2栈最底部字单元的地址为1000:000E 所以栈空时SP0010H。 接下来我们描述pop指令的功能例如pop ax。Pop ax的执行过程和push ax刚好相反由以下两步完成 1. 将SS:SP指向的内存单元处的数据送入ax中。 2. SPSP2SS:SP指向当前栈顶下面的单元以当前栈顶下面的单元为新的栈顶。 下图描述了pop ax的执行过程。 注意上图中出栈后SS:SP指向新的栈顶1000EHpop操作前的栈顶元素1000CH处的数据2266H依然存在但 是它已不在栈中当再次执行push等入栈指令后SS:SP移至1000CH并在里面写入新的数据将它覆盖。 8、push指令 pop指令 Push和pop指令的格式有如下两种形式 第一种形式push 寄存器    ;将一个寄存器中的数据入栈。 Pop 寄存器    ;出栈用一个寄存器接收出栈的数据。 这一种形式它们可以在栈和寄存器之间传送数据。 注意上面的寄存器可以是段寄存器比如可以是push ds、pop ds。 第二种形式push 内存单元    ;将一个内存单元中的字型数据入栈注意栈操作都是以字为单位。 Pop 内存单元    ;出栈用一个内存字单元接收出栈的数据。 比如mov ax, 1000H Mov ds, ax    ;将内存单元的段地址放在DS中。 Push [2a38]    ;将内存单元[2a38]中的字型数据入栈。 Pop [2a3a]    ;出栈出栈的数据送入内存单元[2a3a]。 这一种形式它们可以在栈和内存单元之间传送数据。 指令执行时CPU要知道内存单元的地址可以在push、pop指令中给出内存单元的偏移地址段地址在指令执行时CPU 从DS中取得。 Push和pop实质上是一种内存传送指令与mov指令不同的是push和pop指令访问的栈空间的地址不是在指令中给出 的而是由SS:SP指出的。同时push和pop指令还要改变SP中数值。Mov指令只需一步操作就是传送而执行push、 Pop指令需要两步操作执行push时先改变SP后向SS:SP处传送执行pop时先读取SS:SP处的数据后改变SP。 9 、 栈段 前面讲过参见2.7节对于8086PC机在编程时可以根据需要将一组内存单元定义为一个段。我们可以将长度为N N≤64KB的一组地址连续、起始地址为16的倍数的内存单元当作栈空间来用从而定义了一个栈段。 比如我们将10010H~1001FH这段内存空间当作栈来用以栈的方式进行访问这段空间就可以认为是一个栈段大小为 16个字节。 如何使得如push、pop等栈操作指令访问我们定义的栈段呢那就是要将SS:SP指向我们定义的栈段。 现在我们来回答3.8节中的第一个问题。答只要这段内存单元被SS:SP指向那么CPU就会把这段空间当作栈来使用。
http://www.zqtcl.cn/news/905524/

相关文章:

  • 什么网站源码做分类信息网站好域名备案企业网站内容
  • wordpress 文章显示数量淘宝seo优化怎么做
  • 响应式网站模块商务网站创建流程是什么
  • 关于服饰搭配做的比较好的网站网站后台管理默认密码
  • 用自己电脑配置服务器做网站响应式框架
  • 任经理++徐州网站建设湖南正规关键词优化
  • 哪些软件可以做网站设计农村网站建设茂名
  • 平顶山网站建设费用腾讯云轻量应用服务器
  • 外贸优秀网站廊坊seo建站
  • 站长工具seo综合查询5g网站建设整改落实情况
  • 网站建设方案 流程wordpress客户案例
  • 网站被收录的过程如何创造属于自己的软件
  • 做神马网站优化快速排国外乡村建设网站
  • 东莞网站优化服务公司天河做网站开发
  • ui在线设计网站滁州 来安县建设局网站
  • 做印尼购物网站如何发货wordpress怎么换中文
  • 深圳方维网站建设公司企业网站推广方式和策略
  • 沙洋县住房和城乡建设局网站单页网站下载
  • 江宁区住房建设局网站建设工程扣分查询网站
  • wordpress火车采集优化算法分类
  • 厦门做网站公司有哪些有什么好的加盟店项目
  • wap网站开发技术怎么做消费信贷网站
  • 公司网站开发外包公司深圳网站建设sz886
  • 中英文网站建设需要懂英语吗电气网站设计
  • 双语网站用什么程序做新网站如何被网站收录
  • 怎么做视频平台网站想开个小说网站怎么做
  • 网站安全监测预警平台建设成效阐述网络营销策略的内容
  • 网站上的qq如何做悬浮沧州做网站的公司
  • 电子商务网站系统规划报告移动商城 网站建设方法方式
  • 网站建设架构选型引擎seo优