当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 80386实模式下编程80386在实模式下是一个更快的8086,它不但可以进行32位操作,而且还可以进32位寻址,并且还可以使用80386的扩展指令。
 

 

 ·80386asm程序设计基础(六)    »显示摘要«
    摘要:高级语言支持,条件字节设置指令 aa.高级语言支持指令,开始于80186,主要是用来简化高级语言的某些特征,总共有3条指令:enter,leave,bound a.enter,leave,建立与释放堆栈框架命令。在c语言中,栈不仅用来向函数传递入口参数,而且在函数内部的局部变量也存放在栈中。为了准确地存取这些这些局变量和准确地获得入口参数,就需要建立堆栈框架,先看一个小程序: //c progra......
 ·80386asm程序设计基础(四)    »显示摘要«
    摘要: 算术运算指令,逻辑运算指令,移位指令 aa.算术运算指令 a.加减法运算add,adc,inc,sub,sbb,dec,cmp,neg a.add,和8086功能,用法相同,不过支持32位操作,下面的语句都是合法的。 add esi,edi add eax,dword ptr [1000h] b.adc,带进位的加法指令,即oprds+oprdd+cf,其中oprds代表源操作数,oprdd代表......


80386ASM程序设计基础(八)

 80386实模式下编程

 在8086下定义一个段的完整格式是: 【程序编程相关:iczelionpetutcn5

 80386在实模式下是一个更快的8086,它不但可以进行32位操作,而且还可以进32位寻址,并且还可以使用80386的扩展指令.不过,由于是在实模下,寻址的最大空间为1m.在一个段内,段的最大长度不超过64k,否则就会发生异常. 【推荐阅读:iczelionpetutcn6

 80386下定义一个段的完整格式是: 【扩展信息:汇编(十六)——控制转移类指令二

 段名 [定位类型]  [组合类型]  [‘类别’]

 段名 [定位类型]  [组合类型]  [‘类别’] [属性类型]

 说明:属性类型有两种:use32与use16,use32表示32位段,use16表示16位段.如果你在程序中用到伪指令.386,那么默认的属性类型就是use32(32位段),如果没有用伪指令指定cpu的类型,那么默认的属性类型就是use16,在实方式下只能使用16位段,即用use16.

 eg:

    cseg para public use32;定义一个32位的段

      aa dw ?

      bb dd ?

      cc db ?

      dd dw ?

      ee dw 0,0,0.....

    cseg ends

 由于在80386中用到了66h操作前缀与67h地址前缀,因此尽管在实式模式下,只要设定的cpu类型是80386,仍然可以进行32位操作,可以进行32位寻址,66h,67h这两个前缀无需程序员在程序中书写,汇编程序会自动加上的.只要在程序中对32位操作数进行访问,或进行32位寻址,那么就会加上操作数前缀66h与地址前缀67h.相反,如果在32位段中对16位或8位的访问,汇编程序中也会加上这两个前缀.
...   下一页
 ·80386asm程序设计基础(二)    »显示摘要«
    摘要: 80386处理器的寻址方式 在实式模式下,80386处理器的最大寻址空间仍然为1m,和8086/8088相似。即段地址*10h+段内偏移地址,从而形成20位地址。此种模式下,段基址是16的倍数,长度最大不超过64k。 在保护模式下,80386处理器可以使用所有的物理内存。段基址可以是32位,也可以不是16的倍数,同时它的最大长度为4g,这与8086完全不同,在形成逻辑地址时用段基址直接加上段内偏......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE