汇编语言65185.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言一个完全的汇编语言源程序assume cs:code,ds:data,ss:stackdata segmentdw 0123,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,stackmov ss,axmov sp,20hmov ax,datamov ds,axmov bx,0call sub1mov ax,4c00hint 21hsub1:子程序中使用的寄存器入栈;子程序的编写指令子程序中使用的寄存器出栈retcode endsend start注意:一个段空间为16的倍数注意Debug和编译器对 [常量] 解释方法的不同不可以将常量直接送入段寄存器字单元一个字占两个单元所以高地址存放高位字节,低地址存放低位字节例:4E20H存放在0地址单元处.4E存放在高地址(1),20存放在低地址(0)中断向量表0000:0000到0000:03FF256个4字节的中断处理程序地址,低地址放IP,高地址放CS显示器第一页地址B8000H到BFFFFH安全的地址0000:0200到0000:02FF汇编语言由3类指令组成汇编指令:机器码的助记符,有对应的机器码伪指令:没有对应的机器码,由编译器执行,计算机并不执行其他符号:+,_,*,/,MOD(取余数)等,由编译器识别,没有对应的机器码CPU有3种总线地址总线8086的地址总线宽度为16,所以最多可以寻找216个内存单元(216B=64KB),意思是8086CPU的寻址能力是64KB数据总线8086的数据总线宽度为16,所以最多可以传送16个二进制数据(2byte),意思是8086CPU一次传送的数据为16位控制总线控制总线发送控制信号8086有14个寄存器AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSWAX,BX,CX,DX数据寄存器AX一般用来做中间寄存器BX一般用来做地址变量:[BX]SI,DI,BP功能类似BX,但是不能分成两个8位寄存器只有[BX+SI][BP+SI]没有[SI+DI][BX+BP]BP一般用作地址变量:[BP],而且没指定段地址时,段地址为SSCX一般配合loop指令循环,并且在加载程序时,CX中存放的是程序的长度DX储存CX做2层循环,做32位/16位除法的被除数(高16位)AX可分为AH(高8位)和AL适用于BX,CX,DXCS指令代码段寄存器IP指令指针寄存器DS数据段寄存器SS栈顶元素段寄存器SP栈顶元素寄存器ES辅助段寄存器(需要两个段寄存器时辅助用)PSW 标志寄存器标志寄存器的状态标志1514131211109876543210OFDFIFTFSFZFAFPFCFZF(zero flag)零标志位指令执行后,当结果为0时ZF=1,否则ZF=0PF(parity flag)奇偶标志位指令执行后,当结果最低有效字节(一般为低8位)中的所有bit位的1的个数为偶数时PF=1,否则PF=0AC(assistant carry)辅助进位标志指令执行后,当结果中的第3位(从0开始)向第4位进位或借位时AC=1,否则AC=0SF(sign flag)符号标志位指令执行后,SF=结果最高有效bit位的值CF(carry flag)进位标志位指令执行后,结果中的最高有效位向更高位有进位或借位时CF=1,否则CF=0OF(overflow flag)溢出标志位运算结果的最高有效位向更高位的进位值(CF的值)与到最高有效位的进位值异或,其结果为OF的值TF(trap flag)陷阱标志位(单步标志位)当TF=1时,CPU产生单步中断IF(interrupt flag)中断标志位当IF=1时,响应可屏蔽中断.IF=0时,不响应可屏蔽中断cliIF=0不响应可屏蔽中断stiIF=1响应可屏蔽中断DF(direction flag)方向标志位在串处理指令中,控制每次操作后si,di的增减cldDF=0当DF=0时,si,di递增stdDF=1当DF=1时,si,di递减movsb含意相当于mov es:[di],byte ptr ds:[si] if(df == 0) {inc si inc di} if(df ==1){dec si dec di}movsw含意相当于mov es:[di],word ptr ds:[si] if(df == 0) {add si,2 add di,2} if(df ==1){sub si,2 sub di,2}rep movsb含意相当于s:movsb loop sr

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档