- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五分钟学会汇编语言
五分钟学会汇编语言 —前提是认真学习过《微机原理》 即:寻址方式方式得懂,指令 简单 自学 段的定义(语句) 汇编程序有四个段,分别是堆栈段(定义一段大小适用空间即可(中断会自动使用它),其余不去管它);数据段(好比C语言、VB中都有一个专门定义变量的地方);附加段(数据段大小在汇编中有个上限,而这个已达上限的空间还不够用时,就得定义一个附加段来定义其余的变量,一般程序也用不着);代码段(编写具体的程序代码的地方,如同pascal中程序代码都放在begin………end begin中一样,或C中所有代码写在main …. 中一样)。段由以下语句定义: 段名 SEGMENT [定位类型][组合类型][类别] 语句体 段名 ENDS 段寄存器设定(语句) 在程序中,必须明确段和段寄存器的关系,这可用ASSUME伪指令来实现,其格式为: ASSUME 段寄存器:段名[,段寄存器:段名…] 段寄存器可以是CS,DS,ES,SS。段名为SEGMENT定义的逻辑段的名字。段寄存器伪指令就是设定已定义段各属于哪个寄存器(即由哪个寄存器寻址),建立段与段寄存器的对应关系。 如下例: STACK SEGMENT STACK ;定义堆栈段,段名不一定起成STACK,可以是任意的 DW 64DUP ;定义堆栈空间大小为64个双字,一般程序都够用 STACK ENDS DATAX SEGMENT ;定义数据段,段名不一定起成DATA,可以是任意的 X DB 5 ;定义变量X,占用一个字空间 双字节 ,其值为5 Y DW ;定义变量Y,占用两个字节空间 双字 ,未放初值 DATA ENDS CODE SEGMENT ;定义代码段,段名不一定起成CODE,可以是任意的 ASSUME CS:CODE,DS:DATA,SS:STACK ;建立段与段寄存器的对应关系 START: MOV AX,DATA ;给语句加上一个标号”START”,不一定起标号名为START MOV DS,AX … CODE ENDS ;代码段定义结束 END START ;把代码段段基址装入各相应的段寄存器CS并将 ;标号”START”所在处首地址偏移量送入CPU的 ;IP寄存器 即告诉CPU从START处开始执行程序. ASSUME语句仅仅是指定了某段通过哪个段寄存器去寻址,但是没有把段基址装入相应的段寄存器,所以还必须通过指令序列段基址装入段寄存器的过程。 三、将各个段段基址装入相应的段寄存器 ⑴将代码段的段寄存器装入相应的CS段寄存器 END ;同时将标号或过程所在处的首地址偏移量也送入IP ⑵将数据段的段基址装入相应的DS段寄存器 MOV AX,数据段名 MOV DS,AX ;这是一个固定格式,不容改变 ⑶将附加段的段基址装入相应的ES段寄存器 MOV AX,附加段名 MOV ES,AX ;这是一个固定格式,不容改变 ⑷将堆栈段的段基址装入相应的SS段寄存器(有两种方法) 若定义堆栈段时指定其组合类型为STACK(如上例),则用ASSUME伪指令又指定其由SS段寄存器寻址后堆栈段段基址即(自动)装入SS寄存器。 若定义堆栈段时未指定组合类型为STACK,则 MOV AX,堆栈段名 MOV SS,AX MOV SP,TOP 其余知识自已去学习即可,关键问题就讲到这里。 另注:汇编中不同操作要用不同寄存器,如同同是盛装食品的器皿,盛菜一定要用碟子,盛鱼一定要用鱼盘,盛汤一定要用品,盛米一定要用碗一样的道理,它的规定如此(硬件决定),不用去想为什么,自己去体会。 又例:在屏幕是显示a...z26个小写英文字母 AAA SEGMENT STACK ;后面的STACK表示组合类型为STACK DW 64DUP AAA ENDS BBB SEGMENT ASSUME CS:BBB,SS:AAA XXX: MOV CX,001AH MOV BL,61H ;字符‘a’的ASCII码 MOV AH,02H ;显示一个字符 A1: MOV DL,BL INT 21H INC BL PUSH CX MOV CX,0FFFFH ;循环必须用CX作计数器(类似循环控制变量) A2: LOOP A2 ;相当于NEXT语句 POP CX DEC CX JNZ A1 MOV AH,4CH INT 21H BBB ENDS END XXX ;把代码段段基址装入各相应的段寄存器CS并将 ;标号”START”所在处首地址偏移量送入CPU的 ;IP寄存器 即告诉CPU从XXX处开始执行指令. 注:本程序只有两个段,这样也是可以的,不一定一个程序就必须得四个段全有。 先学寻址方式、指令、三大结构程序再学本文内容可,也可先领会本文再学
有哪些信誉好的足球投注网站
文档评论(0)