汇编语言
文章平均质量分 53
zy691357966
这个作者很懒,什么都没留下…
展开
-
[汇编学习笔记][第九章转移指令的原理]
第九章 转移指令的原理分类jmp转移行为段内转移 短转移 IP修改范围-128~127近转移 IP修改范围-32768~32768段间转移几个其余转移无条件转移(如:jmp)条件转移循环指令(如:loop)过程中断通过深入理解转移指令jmp来理解CPU执行转移指令的基本原理9.1 操作符offset操作符offset是伪指令,取得标号的偏移地址。 还可以在标号出现之前使用,反原创 2016-04-25 22:25:56 · 654 阅读 · 0 评论 -
[汇编语言学习笔记][第七章更灵活的定位内存的方法]
打破了我对bx的幻想第七章 更灵活的定位内存的方法7.1 and和or指令andmov al,01100011Band al,00111011Bormov al,01100011Bor al,00111011B7.2 关于ASCII7.3 以字符形式给出数据在汇编中 用’…’的方式致命数据是以字符形式给出的。data segment db 'unIX' db 'foRK'data原创 2016-04-20 18:06:38 · 415 阅读 · 0 评论 -
[汇编学习笔记][第五章[BX]和loop指令]
第五章[BX]和loop指令前言定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如:(ax)表示ax中的内容,(al)表示al的内容。约定符号ideta表示常量。5.1 [BX][BX] BX 相当于 A[i],改变 i 是最好的遍历方式[1001H][1001H] 相当于 A[2] [BX] 只是单纯的类似下标寻址方式而已。不需要赋予太多意义=C语言中数组的下标符号[]5原创 2016-04-20 13:27:50 · 519 阅读 · 0 评论 -
[汇编学习笔记][第六章包含多个段的程序]
第六章 包含多个段的程序程序取得空间的方法有两种在加载程序的时候为程序分配程序执行过程向系统申请在课程中不讨论第二种(malloc)6.1 在代码段使用数据 从规范的角度,我们是不能自己随便决定那段空间可以使用,应该让系统来为我们分配。在程序中,定义我们希望处理的数据,这些数据会被编译,作为程序的一部分写入可执行文件。当可执行文件被加载入内存时,这些数据也同时被加载入内存中。程序6.1a原创 2016-04-20 16:37:32 · 415 阅读 · 0 评论 -
[汇编语言学习笔记][第四章第一个程序的编写]
第四章第一个程序的编写程序返回规定这两段代码表示程序的返回,至于为什么我也不知道mov ax,4c00Hint 21H程序的执行找到一段起始地址为SA:0000(即起始地址的偏移地址为0)的容量足够空闲内存去在这段内存去的前256个字节中,创建一个称为程序段前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通信在这段内存的256字节处开始(在PSP的后面),将程序载入,程序的地址原创 2016-04-19 09:33:31 · 543 阅读 · 0 评论 -
[汇编语言学习笔记][第三章寄存器(内存访问)]
第三章 寄存器(内存访问)3.1 内存中字的存储字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。在以后我们称起始地址为N的字单元简称为N地址字单元3.2 DS和[address]DS寄存器,通过用来存放要访问数据的段地址。只能通过mov ds 寄存器修改ds的值[address]代表偏移地址,光有偏移地址不能访问内存,段地址通过ds得到例子:mov bx,1000H原创 2016-04-19 09:08:22 · 400 阅读 · 0 评论 -
[汇编语言学习笔记][第二章寄存器]
第二章 寄存器8086有14个寄存器,分别为AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW。2.1 通用寄存器8086CPU的所有寄存器都是16位,可以存放两个字节。 AX , BX , CX , DX 这四个寄存器通常用来存放一般性数据,被称为通用寄存器为了兼容之前的8位通用寄存器,将这4个寄存器拆开为8个8位寄存器分别为H的含义High,高位,L的含义Low原创 2016-04-18 20:13:05 · 673 阅读 · 0 评论 -
[汇编语言学习笔记][第一章基础知识]
1 基础知识1.7 CPU对存储器的读写CPU想要进行数据的读写,必须和外部器件(标准说法是芯片)进行三类信息的交互存储单元的地址(地址信息)器件的选择,读或写的命令(控制信息)读或写的数据(数据信息)这三种信息又通过总线传输,从逻辑上分为三种,分别对应地址总线,控制总线,数据总线。1.8 总线地址总线的宽度决定了CPU的寻址能力(地址范围)数据总线的宽度决定了CPU的传送能力(数据位数原创 2016-04-18 17:24:08 · 446 阅读 · 0 评论 -
[汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写
第十七章 使用BIOS进行键盘输入和磁盘读写17.1 int 9 中断例程对键盘输入的处理17.2 int 16 读取键盘缓存区mov ah,0int 16h结果:(ah)=扫描码,(al)=ASCLL码。17.4 应用 int 13h 对磁盘进行读写只能以扇区为单位对磁盘进行读写。读写扇区时,要给出面号,磁道号,扇区号。面号,磁道号从0开始,而扇区号从1开始。BIOS提供调用int 13原创 2016-04-27 18:43:30 · 799 阅读 · 0 评论 -
[汇编学习笔记][第十六章直接定址表]
ss原创 2016-04-27 16:55:45 · 438 阅读 · 0 评论 -
[汇编语言学习笔记][第十五章 外中断]
第十五章 外中断及时处理外设的输入,有以下两个问题外设的输入随时可能发生,CPU如何得知?CPU从何处得到外设的输入? 这一章,以键盘输入为例,探讨这个问题。15.1 接口芯片和端口外设的输入不直接送入内存和CPU,而是送入相关的接口芯片的端口中。CPU向外设输出,也是要先送入端口,由相关芯片到外设。CPU通过端口和外部设备进行联系15.2 外中断信息外中断信息,来自于CPU外部,当CPU外原创 2016-04-27 16:45:56 · 515 阅读 · 0 评论 -
[汇编学习笔记][第十四章 端口]
第十四章 端口和CPU相连的芯片,除了各种储存器外,还有一下三种芯片。各种接口卡(网卡,显卡)上的接口芯片,他们控制接口卡进行工作。主板上的接口芯片,CPU通过它们对部分外设进行访问。其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理。CPU可以直接读写一下三个地方数据CPU内部的寄存器内存单元端口14.1 端口的读写CPU最多可以定位64KB个不同的端口。对端口的读写只原创 2016-04-27 11:46:40 · 543 阅读 · 0 评论 -
[汇编学习笔记][第十三章int指令]
第十三章int指令13.1 int指令格式: int n, n 为中断类型码可以用int指令调用任何一个中断的中断处理程序(简称中断例程)。13.4 BIOS和DOS 所提供的中断例程BIOS 主要包含一下内容硬件系统的检测和初始化外中断和内中断的中断例程用于对硬件设备进行I/O操作的中断例程其他和硬件系统相关的中断例程操作系统DOS提供的中断例程操作系统向程序员提供的编程资源1原创 2016-04-27 00:57:13 · 475 阅读 · 0 评论 -
[汇编学习笔记][第十二章内中断]
第十二章 内中断任何一个通用CPU,在执行完当前执行的指令,检测到从CPU外部发送过来,或内部发送过来的一种特殊信息,并且可以立即对所接收到的消息进行处理。这个消息,我们称为中断消息。中断消息可以来自CPU的内部和外部,这一章中,我们主要讨论来自于CPU**内部**的中断消息12.1 内中断的产生8086CPU中发生以下事件,会产生相应的中断消息。除法错误 中断类型码:0单步执行 中断类型码原创 2016-04-27 00:29:56 · 418 阅读 · 0 评论 -
[汇编学习笔记][第十一章标志寄存器]
第十一章 标志寄存器作用存储相关指令执行结果用来为CPU执行相关指令提供行为依据用来控制CPU的相关工作方式这种特殊寄存器在8086CPU被称为标志寄存器(flag), 8086标志寄存器有16位其中存储程序状态字。11.1 ZF标志ZF(zero flag) 在flag的第6位。它记录相关指令执行后,其结果是否为0.如果结果为0,则ZF=1,否则ZF=0要注意,在8086CPU中,有的原创 2016-04-26 20:52:38 · 545 阅读 · 0 评论 -
[汇编学习笔记][第十章 CALL和RET指令]
第十章 CALL和RET指令call和ret指令都是转移指令,它们都修改CS和IP。经常被共同用于实现子程序的设计。这一章,我们讲解call和ret指令的原理10.1 ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移(IP)=((ss)*16+(sp))(sp)=(sp)+2等于 pop IPretf指令用栈中的数据,修改CS和IP的内容,从而实现远转移(IP)=((s原创 2016-04-26 00:12:44 · 3134 阅读 · 0 评论 -
[汇编学习笔记][第八章数据处理的两个基本问题]
第八章 数据处理的两个基本问题本章对前面具有总结性。主要解决以下两个问题处理的数据在什么地方要处理的数据有多长定义描述符号reg和sregreg: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和bp在8086CPU中,只有这4个寄存器可以用在"[..]"当中来进行内存单元的寻址。原创 2016-04-21 00:10:08 · 650 阅读 · 0 评论