
汇编语言
文章平均质量分 93
jak0018
这个作者很懒,什么都没留下…
展开
-
寄存器(内存访问)---汇编学习笔记
寄存器(内存访问)序言第二章,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。这一章,我们从访问内存的角度继续学习几个寄存器。3.1 内存中字的存储...原创 2018-07-21 14:38:03 · 5980 阅读 · 0 评论 -
使用BIOS进行键盘输入和磁盘读写---汇编学习笔记
使用BIOS进行键盘输入和磁盘读写大多数有用的程序都需要处理用户的输入,键盘输入是最基本的输入。程序和数据通常需要长期存储,磁盘是最常用的存储设备。BIOS为这两种外设的I/O提供了最基本的中断例程。17.1 int 9中断例程对键盘输入的处理键盘缓冲区的一个概念,很简单。按下shift键的同时按下字母键会改变大小写,改变的是编码!如下:a的变化 第一个是在没有按下shi...原创 2018-08-29 20:39:45 · 1132 阅读 · 0 评论 -
直接定址表---汇编学习笔记
直接定址表16.1 描述了单元长度的标号很简单,自己看。检测点 16.1 下面的程序将code段中a处的8个数据累加,结果存储到b处的双字中,补全程序。assume cs:codecode segment a dw 1,2,3,4,5,6,7,8 b dd 0start: mov si,0 mov cx,8s: mov ax...原创 2018-08-29 20:03:40 · 513 阅读 · 0 评论 -
外中断---汇编学习笔记
外中断要及时处理外设的输入,显然需要解决两个问题:外设的输入随时可能发生,CPU如何得知?CPU从何处得到外设的输入?15.1 接口芯片和端口外设的输入不直接送入内存和CPU,而是送入相关的接口芯片的端口中;CPU向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。CPU还可以向外设输出控制命令,而这些控制命令也是先送到相关芯片的端口中,然后再由...原创 2018-08-29 19:38:46 · 351 阅读 · 0 评论 -
端口---汇编学习笔记
端口在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3种芯片。各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作主板上的接口芯片,CPU通过它们对部分外设进行访问其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理在这些芯片中,都有一组可以由CPU读写的寄存器。这些寄存器,它们在物理上可能处于不同的芯片中,但是它们在以下两点上相同。...原创 2018-08-29 00:44:52 · 540 阅读 · 0 评论 -
int指令---汇编学习笔记
int指令int指令可以引发中断13.1 int指令int指令格式:int n,n为中断类型码,它的功能是引发中断过程。CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下。取中断类型码n标志寄存器入栈,IF=0、TF=0CS、IP入栈(IP)=(n∗4),(CS)=(n∗4+2)(IP)=(n∗4),(CS)=(n∗4+2)(IP)=(n*4)...原创 2018-08-28 22:46:31 · 34292 阅读 · 0 评论 -
内中断---汇编学习笔记
内中断“中断信息”是要求CPU马上进行某种处理,并向所要进行的该种处理提供了必备的参数的通知信息。12.1 内中断的产生当CPU内部有下面的情况发生的时候,将产生相应的中断信息。除法错误单步执行执行into指令执行int指令8086CPU用称为中断类型码的数据来标识中断信息的来源。中断类型码为一个字节型数据,可以表示256种中断信息的来源。除法错误:0...原创 2018-08-28 00:29:13 · 2295 阅读 · 0 评论 -
标记寄存器---汇编学习笔记
标记寄存器CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作用。(1)用来存储相关指令的某些执行结果。 (2)用来为CPU执行相关指令提供行为依据。 (3)用来控制CPU的相关工作方式。这种特殊的寄存器在8086CPU中,被称为标志寄存器(flag)。如图: 11.1 ZF标志flag的第6位是ZF,零标志位。它记录相...原创 2018-08-26 20:38:52 · 1024 阅读 · 0 评论 -
CALL和RET指令---汇编学习笔记
CALL和RET指令call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。10.1 ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移; retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。CPU执行ret指令时,进行下面2步操作(相当于pop IP):(IP)=((ss)∗16+...原创 2018-08-11 20:19:47 · 38268 阅读 · 0 评论 -
转移指令的原理---汇编学习笔记
转移指令的原理可以修改IP,或同时修改CS和IP的指令统称为转移指令。8086CPU的转移行为有以下几类。只修改IP时,称为段内转移,比如:jmp ax。同时修改CS和IP时,称为段间转移,比如:jmp 1000:0。段内转移又分为:短转移和近转移。-**短转移**IP的修改范围为-128~127 - **近转移**IP的修改范围为-32768~327678086C...原创 2018-08-10 21:07:35 · 809 阅读 · 0 评论 -
数据处理的两个基本问题---汇编学习笔记
数据处理的两个基本问题计算机是进行数据处理、运算的机器,那么有两个基本的问题就包含在其中:要处理的数据在什么地方?要处理的数据有多长?我们定义两个描述性符号:reg和sreg。reg的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di。sreg的集合包括:ds、ss、cs、es。8.1 bx、si、di和b...原创 2018-08-10 15:14:12 · 878 阅读 · 0 评论 -
包含多个段的程序---汇编学习笔记
包含多个段的程序要使用一段安全的空间,第五章中我们说0:200~0:2ff是相对安全的。可这段代码容量只有256个字节。合法地通过操作系统取得的空间都是安全的。程序取得所需空间的方法有两种,一是加载程序的时候程序分配,再就是程序在执行的过程中向系统申请。对于使用多个段的问题,我们将讨论: (1)在一个段中存放数据、代码、栈,我们先来体会一下不使用多个段时的情况; (2)将数据、...原创 2018-08-01 14:30:49 · 773 阅读 · 0 评论 -
更灵活的定位内存地址的方法---汇编学习笔记
更灵活的定位内存地址的方法前面,我们用[0]、[bx]的方法,在访问内存的指令中,定位内存单元的地址。本章将用更灵活的方式来定位内存地址。7.1 and和or指令(1)and指令:逻辑与指令,按位进行与运算。例如:mov al,01100011Band al,00111011B;执行后:al = 00100011B(2)or指令:逻辑或指令,按位进行或运算。例如:m...原创 2018-08-09 16:33:04 · 1310 阅读 · 1 评论 -
[BX] 和 loop 指令---汇编学习笔记
[BX] 和 loop 指令[bx]和内存单元的描述loop我们定义的描述性的符号:“()”,“()”中的元素可以有3中类型:寄存器名、段寄存器名、内存单元的物理地址。约定符号idata表示常量5.1 [BX]具体实例:mov ax,[bx]功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。即:(ax) = ((d...原创 2018-07-31 13:50:30 · 1905 阅读 · 0 评论 -
第一个程序---汇编学习笔记
第四章 第一个程序4.1 一个源程序从写出到执行的过程一个汇编语言程序从写到最终执行的简要过程。编写汇编源程序对源程序进行编译连接执行可执行文件中的程序如图所示: 4.2 源程序程序代码如下:;assume是假设assume cs:codesg;伪指令;段名 segmentcodesg segment mov ax,0123H...原创 2018-07-26 15:03:23 · 1247 阅读 · 0 评论 -
寄存器---汇编学习笔记
第二章 寄存器2.0 寄存器的绪论一个典型的CPU由运算器、控制器、寄存器(CPU工作原理)等器件构成。内部总线实现 CPU 内部各个器件之间的联系,外部总线实现CPU和主板其他器件的联系。在CPU中(下列重要内容)运算器进行信息处理;寄存器进行信息存储;控制器控制各个器件进行工作;内部总线连接各种器件,在它们之间进行数据的传送。对于汇编程序员来说,CPU中的...原创 2018-07-07 10:17:42 · 11582 阅读 · 5 评论 -
基础知识---汇编学习笔记
第一章1.1 机器语言电子计算机的机器指令是一列二进制数字。计算机将之转变成一列高低电平,以使计算机的电子器件受到驱动,进行运算。1.2 汇编语言的产生在这里我们发现一个问题:用0和1来描述程序,很难辨别和记忆。于是汇编语言产生了。 我们用汇编指令代替机器指令,汇编指令由编译器翻译成机器指令。 编译过程: 1.3 汇编语言的组成 第一点,比如我们之前所看...原创 2018-07-03 14:01:25 · 887 阅读 · 0 评论 -
关于汇编跟C/C++已经java的内存理解
因为看完汇编语言一书后,对C语言的理解更深了一个层次。以及平时用java的架构开发web,对java的内存问题也有一定的了解。因此特地的写一篇关于内存的博客。仅提供给自己看,以及不是大神而是与我一般水平的人员阅读。汇编的内存分配以8086CPU为例子(我也只学过8086的),可以由自己分配数据段,以及任何一个内存单元都可以作为数据对的存储。而在内存单元中的数值分别代表的是指令或者是...原创 2018-10-13 15:20:06 · 383 阅读 · 1 评论