版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在学习高级语言程序设计时,知道了程序的三大主要在汇编语言的源程序也同样有此三大结构,所不同的是它易出现。DATAXDBYDBZDWDATAENDSCODESEGMENTSTART:MOVAX,DATAMOV MOVZ,AX MOVAH,4CHCODEENDSEND 如果标号的转移指令和定义的标号同属程序的一个段,这时实现转移中的转移指令JMP或CALL指令,那么实现转移就不仅仅是修改IP的问题,@:ADD EQUTHISNEARANDAX,0FFH EQUTHIS LABELNEARMOV LABEL 距离属性被指明为FAR,用以提高标号的灵活性。上面的伪指令和指令等 EQUTHISFARL7:XORAX,0F0FHMOVAX,SEG 格式:OFFSETMOVBX,OFFSET 格式:TYPE标号名
80X86汇编语言程序中指令的执行顺序由代码段寄存器CS和指令指针寄结合(CS)*16+(IP),指向从中取出下一条指令的单元地址。在大多数工作状态下,要执行的下一条指令已从器中取出,并放在单元将利用新的IP和CS值从器中取得下一条指令,直接把该指令传送(1)无条件转移指令(2)条件转移指令(3)循环控制指 格式:JMP目标操作数在本转移指令之前还是定义,此时可以在JMP指令中的目标标号前面之如果该JMP指令,而所定义的标号在JMP指令,则汇编程序格式:JMP16JMP JMP JMP DWDWL2DW…MOVJMPNEAR_LABEL_ARRAY[DI];转移到…MOVJMPNEAR_LABEL_ARRAY[DI];转移到L3JMPJMPDWORDPTR[BX][SI]JMPALPHA[BP][DI]段间间接转移指令一般只能通过器来实现转移,用指令所规定的双“JumpIF…”若条件满足则转(CForAbove/NotBelownorEqualAboveorEqual/NotBelowBelow/NotAbovenorEqual(CForBeloworEqual/NotAbove Equal/Zero((SFxorOF)orGreater/NotLessnorEqual(SFxorGreaterorEqual/NotLess(SFxorLess/NotGreaternorEqual“JumpIF…”若条件满足则转((SFxorOF)orLessorEqual/NotGreaterNotCarry进位标志为“0”NotEqual/NotZeroNotOverflowOverflowNotParity/ParityoddParity/ParityEvenNotSignSign符号位为1例如,JZ MOVSUB JL MOV JBE MOVAND JNZ MOVAL,80HMOVTESTBL,AL JNZL1 ︰CMP ,结果设置标志 JGElab1 MOV
MOVSUB lab1 图4.2计算AXADDAL,1;结果为0,置ZF为1JZL1 MOVMUL JS JNC CMPBH,CMPBH,MOVDL,JAEINTXCHGBH,MOVDL,CMPBH,INTJAEXCHGBH,CMPBL,JAEXCHGBL,MOVDL,BHINT21HMOVBH,MOVAH,1 INT21HMOVBL,MOVAH,1 INT21HMOVCL,
arrdw45,46,54,57… mid(mid(low+high)/ <
ax,dseg ds, es, :
AX,ES:[DI+2] SI,ES:[DI+2] SI,ES:[DI] SI,1 SI,DI AX,ES:[SI] LOW_IDX,1 BX,ES:[DI] HIGH_IDX,BX BX,DI
MOVCX,LOW_IDX DX,HIGH_IDX CX,DX CX,DX CX,1 ,CX SI,1 AX, HIGH_IDX,CX CX LOW_IDX,CX 满足条件就执行循环体,否则循环。续执行循环操作,一旦满足条件则循环。 LOOP指令的指令。mov.modelintmovloopmovmovLOOPE(LoopWhileEqual)/LOOPZ(LoopWhileZero) 处执行;否则顺序执行LOOPE/LOOPZ指令的指令。COUNTEQU$-OFFSETARRAYDATAENDSCODEBEGIN:MOVAX,DATAMOVDS,AXMOVCX,MOVDI,0FFFFH NEXT:DIMOVBH,3DIVBHCMPAH,0 MOVDL, JMPDIS OKENTRY:MOVDX,DI ORDL,30H INT21HINT21H ENDBEGINLOOPNE(LoopWhileNotEqual)/LOOPNZ(LoopWhileNot格式:LOOPNE/ JCXZ(JumpifCX/ECXisZero) COUNTEQU$-OFFSETARRAYDATAENDSCODEBEGIN:MOVAX,DATAMOVDS,AXMOVCX,MOVDI,0FFFFH NEXT:DIMOVBH,3DIVBHCMPAH,0JE OKENTRY:MOVDX,DI ORDL,30H INT21HMOVDL,''INT21HJMP INT END for(inti=0;i< …while(i<…L1:CMPJMP }while(i<… JNEL1 MOV LOOP*BEGIN:MOVAH,1 INT21HCMPAL,33H JBBEGINJABEGIN MOV MOVCH,0 MOVAH,2MOVDL,0DH INT21HMOVINT MOVDL,’*’;输出n个*MOVAH,2INT21HLOOPMOVDL,0DH INT21HINT21HPOPCX LOOPL1 MOVAH,4CH INT21HEND BEGIN:MOVAH,1 INT21HCMPAL,33H JBBEGINJABEGIN MOV MOV MOV MOVAH,2 MOVDL,0DHINT21HINT MOVINTLOOPINTINTMOVPUSHMOVDL,'*' INTMOVSUBCX,2 MOVDL,''INT21HLOOPL2 MOVDL,'*'INT21HMOVDL,0DH INT21HINT21HPOP LOOP MOVCX,BX MOVDL,'*'MOVAH,2INT21HLOOPL4INT21HMOVDL,0AHINT21HMOVAH,4CH INT21HEND
a11 A 15 15 ADW4050H,0003H,5678H,6400H,0009HDW0099H,0084H,9080H,4587H,0000HDW1045H,0000H,0001H,0008H,0007HDW1020H,4321H,5432H,6599H,1256HDW9000H,5608H,6578H,5000H,5432H STAPNDW20DUP(?) EQU$-OFFSETSTAPNSTACKENDS ASSUMEMOVDS,AXMOVSS,AXMOVAX,TOPMOVSP,AXMOVCX,4MOVLOOP1:PUSHMOVSI,2MOVDI,10POPA[BX+SI]POPA[BX+DI]ADDSI,2ADDDI,0AHLOOPLOOP2ADDBX,0CHPOPCX
INT21H END12344.3.5程序举例(例4.3.8movch,rotate:4 ;’0’~’9’ASCII addal, ;’A’~’F’ASCIIprintit:movdl,movah,int
………
DATAREAADDRDWNUMBERNUMBERDWY(0F0FH)COUNTDW? PROGNAMMAINPROCASSUMECS:PROGNAM, AX,AX , DS,初始化NNYYY初始化NNYYYC AX, CXSHIFT: AX,1 EXIT: …9…9…9例…9
3 CX,ES:[DI] DI,2 BX,ES:[DIES:[DI-2BX,ES:[DIES:[DI-2],DI, T:POP WORDPTR例4.3.11编制程序将正数N一个已排序的字数组的正确位置。……… N
CS:PROGNAM AX, AX, DS AX, ARRAY_HEAD-2,0FFFFH ,0 AX, BX,ARRAY_END[SI] ARRAR_END[SI+2],BX , INSERT:MOV ARRAY_END[SI+2],AX Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7, Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10.……X…Y………Z……
XYZ10 ,DS:DATA AX, AX,…77 DS …N
BX, CX, DX, AX,X[BX] DX, AX, AX,Y[BX],BX2 …… A ASSUMECS:PROGNAM,DS:DATAREA AX, AX,DATAREA DS, DI,BX,AX,AX AX,A[BX+2] A[BX],AX BX, CX, 例4.3.14在附加段中有一个字数组,其首地址已存放在DI寄存…8…8… ASSUMECS:PROGNAM,DS:DATAREA AX,DATAREA DS, N YN Y N START_ADDR, CX,ES:[DI
DI, T,CX BX BX, ,2,ES:[DI CX, ,2,ES:[DI ES:[DI+2],AX ES:[DI+2],AX ES:[DI],AX BX,BX BX,0AMEPROC[NEAR/FAR… AME以INT21H的4CH号功能结束。过程的说明信息一般包括过程名称、功能、出口参数、单元、所用寄 子程序的所采用的算法;可选项,如果算法简单,可以不写 ;可选项,为将来的提供信息 这时,调用指令不仅要把该指令地址的偏移量压进栈,而且也要把段寄存器CS的值压进栈。在此,再把被调用子程序地址的偏移量和CALL CALL CALLWORD1 CALLDWORD1 CALLwordptr[BX] CALLdwordptr 能,指令系统提供了一条的子程序返回指令。其格式如下: RET ;子程序返回后,(SP)←(SP)格式:PUBLIC符号[,…格式:EXTRN名称:类型[,…]寄存器与器一样对于所有的程序都是公用的。当调用者调用一个过程时,如果该TESTPUSHAXPUSHBXPUSHPOPBXPOPAXTEST…AL,…AL,…给子程序,而是把它们的地址(一般是首地址)告诉子程序。例4.4.1过程PROADD直接模块的数据区。例4.4.2通过地址表传送变量的方法传递参数。中断就是使处理器暂时挂起当前正在进行的工作程序, 前
常见的中断源大致分为CPU外部产生的中断和CPU外部中断源包括通过NMI引脚传递的非中断和通过In8259A可编程中断控制器传递的外部中断等。CPU通过8259来管理外部中断。外部设备的中断通过8259A的INTR引脚给CPU传送中断信号,8259A还可以使CPU中断则包括除法出错中断、单步中断、INTO指令产生的溢出中断和程序中安排的INTn中断指令产生的中断等。 可中可中断通常来自外部设备,可以通过指令设置中断控制器的参数来某 软件中断则是指由指令INTn引起的非中断 MOVDX,34HMOVBX,1 硬件中断之一的单步中断INT01H和断点中断INT03H,于器中地址0000H~3FFH处。中断指令 下一条指令 AX,
7217210A700…………以DOS系统功能调用中断INT20H为例,来说明由软件引起的非型中断,在程序中遇到INT20H时,该指令产生中断类型号为20H的中断,该中断在D0000:0080L4,就会得到如下结果:0000:00807210A7 结果中的“7210A700”就代表以0000:开始的字节内存单元的进制毕能够正确地返回中断调用处。出中断请求的(指令INT是发出中断信号,而不要理解为调用中断服BIOS驻留在系统板的只读器ROM中,计算机加电后,可以随时调在器系统中,从地址FE000H到FFFFFH的8KBROM中装有ROMBIOS能处理几乎所有的I/O(只有等极少数不能处理)。它直接用输入/所以中断处理程序必须具有自保护的能力,并能到所有当前段基址部硬件中断处理程序时,程序中绝对不允许使用INT21H。35H就能指定中断号的地址。其使用参数如下:参数:AH=35H,AL=中断号原中断向量表中的地址就被破坏了,这时,该地址既不指向原处那么,系统将转向一个的位置。如果程序员能确信此时不会发生该类型的中断请求,当然也就不必关中断指令。口地址恢复成处理该中断的地址。INTNOEQU40H OLDADDRDD? NEWPROGPROC;新中断处理程 MOVAL INT MOVwordptrOLDADDR,MOVwordptrOLDADDR+2,MOVAXSEGNEWPROGMOVDS,AXMOVDX,OFFSETNEWPROGMOVAL,INTNOMOVAH,25HINT21H ordptrOLDADDRMOVDS,ptrOLDADDR+2MOVAL,INTNOMOVAH,25H;步INT骤 ,w输入的字符在AL则自动调用INT23H并结束程序。返回时AL=字符。AH=6:读键盘字符,时DL=0FFH。如果准备好,AL=字符,未准备好,AL=0。MAXLENDB32 DB? DB32DUP(?) MOVAH,0AHINT键入字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校课改实施评估总结
- 北京大学计算概论课件ch02-2-计算机-互联网-信息社会
- 2026春泰山版(新教材)小学信息技术四年级下册《知识优化变图谱》同步练习及答案
- 2026年山东省电工中级考试题库及答案
- 列车员安全素养能力考核试卷含答案
- 套筒卷制工岗前安全生产知识考核试卷含答案
- 压电石英晶体切割工安全行为考核试卷含答案
- 绢纺精炼操作工安全应急强化考核试卷含答案
- BIPV成本控制路径分析
- 2026年高职(税务筹划基础)节税方案构思阶段测试试题及答案
- 2026年天津市高三高考二模英语模拟试卷试题(含答案详解)
- 2026年炊事专业考核真题(培优B卷)附答案详解
- 北京市西城区2026年高三一模英语试卷(含答案)
- 安宁疗护科临终关怀安全质量目标及管理细则2026年
- 2026年中考苏教版生物复习知识点考点背诵提纲
- GA/T 2332-2025法庭科学纤维检验拉曼光谱法
- 肝移植术后感染防控指南(2025版)
- 血管外科科普教育
- 2025高考理综新疆真题试卷+参考答案
- 山东省日照市2025-2026学年高一上学期期中校际联合考试日语试卷(含答案)
- 艺术学概论课件彭吉象
评论
0/150
提交评论