1.loop的用法 loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作 1:(cx)=(cx)-1 2:判断cx中的值,不为零则转至标号处执行,如果为零,则向下执行 这里有几点需要注意: 1.loop虽然是一种循环的格式,但是和高级语言中的for或者while不同,它本身并没有达成循环的作用,只是提供一个循环中可以用到的判断.要实现循环,依然需要搭配程序段以及程序段中的jmp实现 2.loop是“先减再判断”,这一点在设置cx的值时要特别注意.例如,如果需要循环十次…
转载地址:http://www.cnblogs.com/dennisOne ☞模块化程序设计 模块化程序设计 汇编语言通过call和ret指令实现了模块化程序设计.可以实现多个相互联系.功能独立的子程序来解决一个复杂的问题. 子程序的框架 1 assume cs:code 2 code segment 3 main: : 4 : 5 call sub1 ; 调用子程序sub1 6 : 7 : 8 mov ax, 4c00h 9 int 21h 10 11 sub1: : ; 子程序sub1开始…
JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一般使用两种方法,一种是通过JDBC驱动程序直接连接,一种是通过连接池. (1)JDBC的体系结构 1.数据库驱动程序 实现了应用程序和某个数据库产品之间的接口,用于向数据库提交SQL请求. 2.驱动程序管理器(DriverManager) 为应用程序装载数据库驱动程序 3.JDBC API 提供了一…
我会尽力以最简洁清晰的思路来写这篇文章. 所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程.因为操作系统要兼顾许多东西,所以也就变得复杂. 逻辑地址 → 线性地址 → 物理地址 逻辑地址 = 段 + 偏移量 因为:最开始cpu中的alu宽度只有16位,但地址总线宽度有20位.所以设置四个段寄存器:cs(指令),ds(数据),ss(堆栈),es(其它). 每个段寄存器16位,对应地址总线高16位.每条指令中的16位内部地址与某个段寄存器中内容相加,得到20位的实际地址. 上述的16位…
原文地址:http://www.cnblogs.com/jacklu/p/6226330.html Exynos 4412 Uboot的汇编代码就不贴了,没有的可以私信我. 这是我当时阅读代码时的思维导图笔记,没有条理性.分析了从上电到跳转到C语言的整个汇编过程.Uboot与CPU芯片息息相关,看汇编代码时,推荐结合处理器手册一起看. (图中带+的表示未展开,所有未展开的都会有另外截图,图标代表思维导图层级结构) Exynos 4412 Uboot源码解析 图1 图1-1 图1-1-1 图1-1…
101Java简介 101Java简介及开发环境搭建 Java简介 编程语言简介 机器语言:纯粹的机器代码 机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行.效率最高,但是通用性不强,对于不同的硬件需要不同的程序.说白了,不适合人来编程. 汇编语言:8086汇编.Win32汇编..NET的汇编 汇编语言:效率稍微低于机器语言,通过简单的助记符来替代繁琐而枯燥的0,1代码.同样的通用性不强,对于不同的硬件需要设计不同语言.学习曲线比较大,需要硬件知识很多.介于其特殊的性质,在某些行…
● 实模式下32bit处理器,与8086兼容,例如loop 指令结束标志,只判断cx,而不是ecx ● IO端口 实际上是一些寄存器,在IO接口当中.向外设读写数据,要通过读写IO端口来实现. 有些计算机系统中,端口会映射到内存地址空间. 有些计算机系统,端口独立编址,处理器的地址线连接到IO接口 独立编址的端口不能用mov指令访问,要用in/out in al, dx :只能用al/ax, dx in ax, dx in al, 0xf0; 如果源操作数使用立即数,只能是一个字节 in ax,…
概述 汇编语言(Assembly Language)用符号代替了0和1,比机器语言更便于阅读和记忆. 但是同样汇编语言同样指令太多不便于记忆,就出现了高级语言.C\C++\Java\Swift等,更接近人类的自然语言. 编程语言的发展史 机器语言是可以直接运行在计算识别运行的,汇编需要经过编译生成计算机语言.高级语言是通过编译中间产物是汇编,不是一部到机器语言. 汇编语言与机器语言是一一对应的,每一条机器语言指令都有与之对应的汇编指令.汇编语言可以通过编译得到机器语言,机器语言可以通过反编译得到…
开启Xcode汇编调试 选中Always Show Disassembly项. XCode -> Debug -> Debug Workflow -> Always Show Disassembly   在计算机中,虽然数据是存储在内存中,但内存中数据的加减计算并不是在内存中直接进行的. 而是把内存中的数据赋值到寄存器中,然后CPU在寄存器中计算好后把结果再赋值到内存中的. 对内存中3做加1计算,并把几个4存储到蓝色内存块中 movq 红色存储空间, %rax addq $0x1, $r…
80X86中断系统 能够处理256个中断 用中断向量号0-255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1.中断的分类 中断可以分为内部中断和外部中断. (1)内部中断 除法错中断 指令中断 溢出中断 单步中断 断点中断 (2)外部中断 非屏蔽中断 可屏蔽中断 如果觉得上面的分类太抽象,那么下面的图会给你直观的印象. 通过这张图,我们可以明白,内部中断是在处理器内部产生.外部中断是通过两个信号线(NMI和INTR)引入处理器内部的. 2.内部中断 (1)除法…