汇编语言学习2 寄存器

基本概念1:
1.CPU中 用16位寄存器存放一个字, 高8位存放高位字节,低8位存在低位字节

如图可以如下理解概念
 1.  0 1 两个内存单元存到的是4E20H, 0低地址, 1高地址, 0 1可以看出1个起始地址为0的字单元,存放4E20H(20000)
 2.  2 3 两个内存单元存到的是0012H,起始地址2
 3.  0单元存在的字节型数据20H, 存在的字型数据4E20H
 4.  2单元存在的字节型数据12H, 存在的字型数据0012H
 5.  1单元存在的字型数据124EH

基本概念:
1. 通用寄存器 ax bx cx dx
2. 8086中内存地址是由 段寄存器cs  偏移地址ip组成,DS寄存器存放段地址, cs:ip存放cpu当前执行的地址

mov指令的作用:1把数据直接写入寄存器 2.把寄存器的内容写入寄存器

[50]     []表示一个内存单元,   50表示偏移地址

mov bx,1000H
mov ds,bx
mov al,[0]
这3条语句 把1000:0(CS:IP)的数据写入al

mov ax,1 把1放入ax

如何将al的数据写入到内存单元1000:0中了?
mov bx,1000H
mov ds,bx    //使cs:ip指向地址1000:0
mov [0],al   //数据拷贝
这3条语句 把al的数据写入到了到1000:0中

mov ds,1000H 这样就不对,CPU不支持把数据直接写入段寄存器

时间: 2024-10-01 03:01:36

汇编语言学习2 寄存器的相关文章

汇编语言学习1 寄存器

基本概念 1个字节 == 8位 == 11111111(2进制) 255(10进制) = 11111111(2进制)==FF(16进制)==8位寄存器 65535(10进制) = 11111111 11111111(2进制)==FFFF(16进制)==16位寄存器 16位通用寄存器: AX BX CX DX, 最大能存放是数是FFFF ah al  表示 AX的高8位  和 低八位寄存器 比如执行:mov ax f4a3H ax=f4a3H(62627) 内存中 11110100   10100

汇编语言学习总结

因为基础知识薄弱,自己计划在学校毕业前想再好好学习学习基础知识.读的书中有王爽的<汇编语言>和<Intel汇编语言程序设计>,这两本书都特别棒,现在将学习的一些新的记录整理下来. 第一部分:汇编语言工具.平台介绍 第二部分:汇编语言基本语法 1. 在汇编语言里,寄存器数据的存储位置至关重要,下表就列出了多种寻址地址的方法. 2. 字单元和字节单元 用X ptr指明内存单元长度: mov byte ptr [1000H],1 mov word ptr [1000H],1 寻址地址在结

最强大的王爽汇编语言学习环境使用教程

最强大的王爽汇编语言学习环境使用教程 一.前言 这是采用VMwere Workstation 12 pro虚拟机软件,搭建的MS-DOS学习环境,在windowsXP/8/10及linux中均可以使用,在这个环境中,我集成了CCDOS中文系统,pdos中文系统,使用这些系统,可以进行中文输入与显示.还集成了,十分著名的汇编语言调试工具TR,它比debug更加强大.并且集成了适合王爽汇编语言学习的微软汇编语言编译器masm5和dos中最强大的文本编辑器 vim73 for DOS,这是一个支持彩色

汇编语言学习第十一章-标志寄存器

本博文系列参考自<<汇编语言>>第三版,作者:王爽 8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW).除了前面介绍的寄存器.本博文将介绍最后一个寄存器,标志寄存器.不同于之前的寄存器,标志寄存器是按位起作用的.其每一位都有特殊的含义. 8086标志寄存器的结构如下图所示: 标志寄存器的1,3,5,12,13,14,15都没有特殊含义.其0,2,4,6,7,8,9,10,11用作标志位使用. 11.1 ZF标志(zeros flag) 标志寄存器第6位

汇编语言学习01

汇编语言(8086cpu) 恩,学习一门课程,我觉得应该有一定的条理性,而且自己要勤加思考才能学好,条理性:最好就是先整体的介绍一下全本书,然后再详细的介绍各个章节,而且,书籍的章节安排目录有一定的条理性,是渐进式的,前面的学习,为后面的内容做好了铺垫,打好了基础.不能随便排版(深入理解计算机系统是我读过数里面最好的) 读书教材:王爽的<汇编语言>教材比较好. 下面在阅读了三章以后写一下自己的收获. 汇编语言:基于底层的一门语言.在学习这本书时,学过计算机组成原理会对这本书的学习起到良好的作用

汇编语言学习第四章-第一个程序

本博文系列参考自<<汇编语言>>第三版,作者:王爽 前面的几章中我们断断续续的学习了一些指令,但是从来没有完整的通过汇编语言编写一个可执行文件即.exe文件.从本章开始我们将开始使用汇编语言并通过编译器编译链接一个完整的可执行文件. 4.1 一个源程序从写出到执行的过程 如下图所示,为一个完整的汇编程序到执行的过程: 上图的过程可以总结成以下几个步骤: (1) 根据汇编语言语法规则和目标程序工程编写汇编程序.这一步在文本编辑器或者在一些IDE中编写. (2) 通过汇编编译器将编写的

汇编语言学习第六章-包含多个段的程序

本博文系列参考自<<汇编语言>>第三版,作者:王爽 在前面的介绍的程序中只有一个代码段.那么如果我们需要将代码,数据分别存储在不同的内存空间应该怎么办呢?我们知道我们不可能随便使用任何一段内存空间,因为我们这段内存地址空间可能存储着非常重要的内容.其实,这只是我们考虑的太多啦,一旦我们将程序载入内存后,操作系统为我们分配的用于程序运行的内存空间都是安全的,绝对不会与其他程序的内存空间相重叠的. 往往程序获取内存有两种方式:一种是在程序载入内存的时候操作系统已经分配好的内存空间,另外

8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍

1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于在没有操作系统的裸机上直接操作硬件的,但对于大部分人来说,在8086裸机上直接进行编程将会面临各种困难.好在我们可以使用软件模拟器来模拟硬件进行8086的学习实践.在<汇编语言>中作者推荐通过windows环境下的masm和debug进行学习. masm介绍: masm是一款DOS下的汇编工具包,

小甲鱼零基础汇编语言学习笔记第六章之包含多个段的程序

在前面的几个章节中,我们的程序都是只有一个代码段,本章我们开始学习如何编写包含多个段的程序. 1.在代码段中使用数据 首先考虑这样一个问题,计算以下8个数据的和,结果存放在ax寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 在前面的课程中,我们都是累加某些内存单元中的数据,并不关心数据本身,可现在我们要累加就是已经给定了数值的数据. 代码如下: 1 assume cs:codesg 2 codesg segment 3 dw 0123H