一问题解答及课程导入.ppt

上传人:本田雅阁 文档编号:2660880 上传时间:2019-05-01 格式:PPT 页数:20 大小:335.51KB
返回 下载 相关 举报
一问题解答及课程导入.ppt_第1页
第1页 / 共20页
一问题解答及课程导入.ppt_第2页
第2页 / 共20页
一问题解答及课程导入.ppt_第3页
第3页 / 共20页
一问题解答及课程导入.ppt_第4页
第4页 / 共20页
一问题解答及课程导入.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《一问题解答及课程导入.ppt》由会员分享,可在线阅读,更多相关《一问题解答及课程导入.ppt(20页珍藏版)》请在三一文库上搜索。

1、一、问题解答及课程导入,汇编语言,1、学生网上提问:REPE和CMPS串比较指令的用法,与REPE/REPZ和REPNE/REPNZ 联合工作的CMPS和SCAS指令 * REPE/REPZ 当相等/为零时重复串操作 格式: REPE(或REPZ) CMPSB REPE(或REPZ) CMPSW 执行操作: 1)如(CX)=0或ZF=0时退出,否则往下执行。 2)(CX) (CX)-1 3)执行其后的串指令 4)重复13,例:两个字串比较 DATA SEGMENT STRING1 DB STUDENT STRING2 DB STUDENT DATA ENDS 要求:源串的首址在SI中, 目的串

2、的首址在DI中。 CX存放比较的次数。, LEA SI ,STRING1 LEA DI,STRING2 MOV CX,5 REPE CMPSB,2、归纳循环结构的各种形式 (1)用条件转移指令实现 (2)重复前缀REP/REPE/REPNE (3)LOOP/LOOPE/LOOPNE (4)前提是循环次数的确定。用CX存放循环次数。,例 有一首地址为ARRAY的M字数组,试编写一程序;求出该数组的元素累加和(不考虑溢出),并把结果存入TOTAL中。,ARRAY DW 12,43,17,35,87 M DW 5 MOV CX,M MOV AX,0 MOV SI,AX REPTSUM: ADD AX

3、,ARRAYSI ADD SI,2 DEC CX JNZ REPTSUM MOV TOTAL,AX,(1)用条件转移指令实现循环,(3)采用LOOP指令实现循环,ARRAY DW 12,43,17,35,87 M DW 5 MOV CX,M MOV AX,0 MOV SI,AX REPTSUM: ADD AX,ARRAYSI ADD SI,2 LOOP REPTSUM MOV TOTAL,AX,5.3 多重循环,一、多重循环结构 1、内循环和外循环的控制,需要两个循环控制变量:I,J,多重循环嵌套时,不允许内外循环交叉,2、内循环和外循环的跳转,例 :有一个首地址为A的N字数组,请编制程序使该

4、数组中的数按从大到小的次序整序。,二、多重循环举例 排序程序:算法起泡排序法,起泡排序算法的程序框图,起泡排序算法的程序实现,datarea segment a dw 8,5,16,84,32 n dw 5 datarea ends prognam segment main proc far assume cs:prognam, ds:datarea start: push ds,xchg ax, abx+2 mov abx, ax cotinue: add bx, 2 loop loop2 mov cx, di loop loop1 ret main endp prognam ends en

5、d start,sub ax, ax push ax mov ax, datarea mov ds, ax mov cx, n dec cx loop1: mov di, cx mov bx, 0 loop2: mov ax, abx cmp ax, abx+2 jge cotinue,数组TABLE中存放8个小写字母computer。编程序,将它们按升序排序。 排序结果为 (cemoprtu),三、多重循环练习 排序程序:算法起泡排序法,起泡排序算法的练习答案,datarea segment TABLE db computer n dw 8 datarea ends prognam segm

6、ent main proc far assume cs:prognam, ds:datarea start: mov ax, datarea mov ds, ax,mov cx, n dec cx loop1: mov di, cx mov bx, 0 loop2: mov al, TABLEbx cmp al, TABLEbx+1 jbe cotinue xchg al, tablebx+1 mov tablebx, al cotinue: add bx, 1 loop loop2 mov cx, di loop loop1,mov ah,4ch int 21h main endp prog

7、nam ends end start,例:在附加段中有一个字数组,其首地址已存放在DI寄存器中,在数组的第一个字中存放着该数组的长度。要求编制一个程序是该数组中的数按照从小到大的次序排列整齐。,四、根据标志位起泡排序算法,根据标志位起泡排序算法的程序实现:,data segment save_cnt dw ? start_addr dw ? data ends Extra segment A dw 5, 8,5,16,84,32 Extra ends prognam segment bubble proc far assume cs:prognam, ds:data, es:extra pus

8、h ds push cx push ax push bx,mov ax, data mov ds, ax mov ax, extra mov es, ax lea di, a mov start_addr, di mov cx, es:di mov save_cnt, cx init: mov bx, 1 dec save_cnt jz sorted mov di, start_addr,next: add di, 2 mov ax, es:di cmp es:di+2, ax jae cont xchg es:di+2, ax mov es:di, ax sub bx, bx cont: loop next cmp bx, 0 je init,sorted: mov di, tart_addr pop bx pop ax pop cx pop ds bubble endp prognam ends end,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1