汇编语言的分支程序设计:例题1:比较三个无符号数的大小,按照从大到小的顺序排列关键的语句是:无符号数,因此所用语句是JAE实现跳转:此外比较两个操作数所用的是CMP,交换两个操作数的是XCHG书上的代码:代码1:这样写法比较占用寄存器,但是寄存器之间交换数值比较快;程序名称:实现三个无符号数的由小到...
分类:
编程语言 时间:
2014-05-06 09:13:52
阅读次数:
412
1.CPU根据中断码如何找到中断处理程序
要定位中断处理程序,就需要找到中断处理程序的段地址和偏移地址,如果根据中断码找到他们?这就引入中断向量表,CPU用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址。
2.使用中断类型码找到中断向量,并用它设置CS和IP,这个操作是由CPU硬件自动完成的。这个过程成为中断过程:
(1)从中断信息中取得中断类型码
(2)标志寄存器的值入栈...
分类:
其他好文 时间:
2014-05-05 12:57:22
阅读次数:
318
主程序调用子程序是,往往需要向子程序传递一些参数,同样,子程序运行的时候也需要把一些结果参数传回给主程序,主程序与子程序之间的这种信息传递称为参数传递,我们把主程序传给子存续的参数称为子程序的入口参数,把由子程序传给主程序的参数称为子程序的出口参数有多种传递参数的方法,寄存器传递法,约定内存单元传递...
分类:
其他好文 时间:
2014-05-04 11:58:28
阅读次数:
264
1.标志寄存器的第10位DF,方向标志位。在串处理指令中,控制每次操作后si,di的增减
DF=0,每次操作后,si、di增加
DF=1,每次操作后,si、di减小
我们可以用汇编语法描述movsb的功能如下:
mov es:[di],byte ptr ds:[si] ;8086不支持这样的指令,仅做描述之用
如果DF=0:inc si
inc di
如果DF=1:dec si...
分类:
移动开发 时间:
2014-05-04 00:03:04
阅读次数:
581
1.registerregister变量必须是能被CPU寄存器所接受的类型(32位机器寄存器为32位),必须是单个的值,长度小于或等于整形的长度不能用&来获取register变量的地址。2staticstatic在代码块外或函数声明用于更改标识符的链接属性static在代码块内的变量定义用于更改存储...
分类:
其他好文 时间:
2014-05-03 23:34:28
阅读次数:
318
子程序为了完成一些功能,通常要使用一些寄存器来存放内容,有时候还要使用一些存储单元来存放内容,也就是说,在子程序运行时通常会破坏一些寄存器原有的内容,如果不采取措施,在调用子程序之后,主程序就无法在使用存放在这些寄存器或者存储单元的原有内容了,这常常会导致主程序错误,为此,要对有关的寄存器或存储单元...
分类:
其他好文 时间:
2014-05-03 22:40:18
阅读次数:
568
既然这样,段描述符表放在那里呢?80386中引入了两个新的寄存器来管理描述符表。一个是48位的全局描述符表寄存器GDTR,一个是16位的局部描述符表寄存器LDTR。那么,为什么有两个描述符表寄存器呢?
GDTR指向的描述符表为全局描述符表GDT。它包含操作系统中所有任务都可用的段描述符,通常包含描述操作系统所使用的代码段、数据段、堆栈段的描述符及各任务的LDT段等,全局描述符表只有一个。
LD...
分类:
其他好文 时间:
2014-05-03 21:03:23
阅读次数:
363
1、调用库函数编程和直接配置寄存器编程的区别:
2、CMSIS标准:
3、STM32库函数的组织:
4、程序例举:
调用库函数实现通过USART发送数据(26个大写的英文字母)
首先:在主函数部分先要(调用自己编写的函数)对USART要用到的I/O端口进行配置、打开系统时钟配置和对USART1进行参数配置
下图是通...
分类:
其他好文 时间:
2014-05-03 20:57:05
阅读次数:
319
在实模式下寻址的时候,”段寄存器+偏移地址”进过转换计算以后得到的地址是“物理地址”,也就是在物理内存中的实际地址,而在保护模式下,“段选择器+偏移地址”转换后的地址被称为“线性地址”而不是“物理地址”,那么线性地址就是物理地址吗?
答案可能是,也可能不是,这取决于80386的内存分页机制是否被使用。
为什么有内存分页机制?
我们回顾一下,单任务的DOS系统中,一个应用程序可以使用所有的空闲...
分类:
其他好文 时间:
2014-05-03 20:56:39
阅读次数:
368
1.ZF
零标志位,执行指令后结果为0,ZF=1,否则ZF=0
2.PF
奇偶标识位,它记录相关指令执行后,其结果的所有二进制位中1的个数是否为偶数,如果是偶数,PF=1,否则PF=1。
3.SF
符号标识位,它记录相关指令执行后,其结果是否为负,如果是负数SF=1,否则,SF=0
SF是CPU对有符号数进行运算结果的一种记录,它记录数据的正负。在我们将数据当做有符号数...
分类:
其他好文 时间:
2014-05-03 16:29:20
阅读次数:
352