一、单片机(51)的汇编和计算机的汇编有什么区别? 单片机(51)的汇编和计算机的汇编有什么区别? - 知乎
二、一步步教你编写汇编程序
三、汇编语言入门教程
四、段地址左移4位相当于十六进制左移1位
汇编(三)段地址、偏移地址、内存单元、寄存器、CS、IP、代码段、debug、实验题-阿里云开发者社区
段地址和偏移地址寻址范围_“段地址 x 16 + 偏移地址 = 物理地址”的本质含义:..._GrapeDoor的博客-CSDN博客
1)比如段地址为:1234H,将段地址左移4位,就是针对段地址的二进制形式左移4位。而4个二进制数刚好表示一个16进制数,也就是左移4位就相当于十进制的乘16,十六进制的乘10.
1234H = 1 0010 0011 0100B,然后左移4位,就加4个0
就得到 1 0010 0011 0100 0000B换算成16进制就是12340H,就相当于成2的4次方,2的次方刚好是16,所以,就是相当于乘十进制的16.不知道你有没有看懂。
2)8086/8088有20条地址线,它的直接寻址能力为1MB。也就是在一个系统中可以有多达1MB的存储器,地址从00000H—FFFFFH。给定任意一个20位物理地址,就可以从中取出需要的指令和操作数。但是8086/8088CPU只能进行16位运算。与地址有关的寄存器SP、IP、BP、SI、DI也都是16位的,所以对地址的运算也只能是16位的。对于8086/8088来说,无论采用哪种寻址方式,寻找操作数的范围最大是2^16,也就是64K。如何才能形成20位的物理地址呢。系统先将1MB存储器以64KB为范围分成若干段。在寻址一个具体物理地址时,由一个基本地址再加上由SP或IP等可由CPU处理的16位偏移量来形成20位物理地址(通过用段寄存器+SP或IP寄存器 两个寄存器来形成20位物理地址)。
3)
(1)1MB=1024KB,1KB=1024B(字节)。
(2)1MB=1024KB=1024×1024B=1048576B。
五、区别指令和数据
指令周期
冯诺依曼计算机是根据指令周期的不同阶段,来区分从内存中取出的是指令还是数据。
存储器中的每段存储空间都会有一个地址,每个指令都包括一段操作数和一段空间地址,cpu会根据操作数去处理地址所指的数据。
一般计算机先读取存储器最开始的内容(这一部分是指令),然后加载操作系统后由操作系统对硬盘文件系统结构(即是数据)以判断其他数据和指令的位置。
指令周期分为4个部分
取指周期,这个周期取出的是指令{操作码,地址码}
间接寻址周期,找到有效地址(内存物理地址)
执行周期,这个周期取出的就是数据
中断周期,检查有没有中断信号