文档详情

指令系统应用举例.ppt

发布:2017-08-02约1.03万字共23页下载文档
文本预览下载声明
指令系统应用举例 [书例 2.2] P63 MOV SI, OFFSET BUFFER1 ;源数据块首地址的偏移量送SI MOV DI,OFFSET BUFFER2 ;目标首址的偏移量送DI MOV CX,200 ;数据块长度送CX NEXT:MOV AL,[SI] ;源数据块中一个字节传到AL MOV [DI],AL ;AL 传送到目标地址 INC SI ;SI 加1 INC DI ;DI加1 DEC CX ;CX减1 JNZ NEXT ;如不等于0,转移到NEXT …… [书例 2.3] P67 MOV BP,SP ;设置基址指针寄存器 PUSH AX ;推入AX,SP减2 PUSH BX ;推入BX,SP减4 PUSH CX ;推入CX,SP减6 …… MOV AX,[BP-2] ;恢复AX原来的内容 MOV BX,[BP-4] ;恢复BX原来的内容 MOV CX,[BP-6] ;恢复CX原来的内容 ADD SP,6 ;恢复SP原来的内容 [书例2.6] P75 要求计算两个多字节十六进制数之和: 3B74AC60F8H+20D59E36C1H=? MOV CX,5 ;循环次数送CX MOV SI,0 ;SI初值为0 CLC ;清进位标志CF LOOPER:MOV AL,DATA2[SI] ;取一个字节加数 ADC DATA1[SI],AL ;与被加数相同且送回内存区 INC SI ;SI加1,指向下一字节 DEC CX ;循环次数减1 JNZ LOOPER ;如不为0,转LOOPER …… ;如为0,运算结束 [书例2.7] P77 计算4609+3875=? 设被加数和加数的每一位数都以ASCII码形式存放在内存中,低位在前,高位在后。 LEA SI, STRING1 ;(SI)?被加数地址指针 LEA BX,STRING2 ;(BX)?加数地址指针 LEA DI, SUM ;(DI)?结果地址指针 MOV CX,4 ;(CX)?循环次数 CLC ;清进位标志CF NEXT:MOV AL,[SI] ;取一个字节被加数 ADC AL,[BX] ;与加数相加 AAA ;ASCII调整(非压缩) MOV [
显示全部
相似文档