习题4.21-1/2 ;用二进制显示从键盘输入的一个字符的ASCI码 mov ah. 1 ;从键盘输入一个字符 int 21h mov bl al ;BL←AL=字符的ASCI码 ;D0S功能会改变AL内容,故字符 ASCII码存入BL mov ah. 2 mov dl ;显示一个分号,用于分隔 int 21h
;用二进制显示从键盘输入的一个字符的ASCII码 mov ah,1 ;从键盘输入一个字符 int 21h mov bl,al ;BL←AL=字符的ASCII码 ;DOS功能会改变AL内容,故字符ASCII码存入BL mov ah,2 mov dl,': ' ;显示一个分号,用于分隔 int 21h 习题4.21-1/2
习题4.21-2/2 mov CX,8;CX←8(循环次数) again:shlb1,1;左移进CF,从高位开始显示 moⅴd1,0;MoV指令不改变CF adc d1 30h DL +0+30H+CF ;CF若是0,则DL←’03;若是1,则DL←’1 moy ah.2 int21h;显示·计数控制循环 loop again 米循环次数固定 ;CX减1,如果CX未减至0,则循环 ENTER
mov cx,8 ;CX←8(循环次数) again: shl bl,1 ;左移进CF,从高位开始显示 mov dl,0 ;MOV指令不改变CF adc dl,30h ;DL←0+30H+CF ;CF若是0,则DL←'0';若是1,则DL←'1' mov ah,2 int 21h ;显示 loop again ;CX减1,如果CX未减至0,则循环 习题4.21-2/2 计数控制循环 循环次数固定
startup mov ax, word;测试目标送AFk例4.6 moⅴcx,16 循环计数器置初值 movd1,-1;计位器置初值 again: inc dl test ax. 1 ror ax, 循环指令不影响ZF loope again CX≠0且ZF=1(测试位为0),计数控制循环 je notfound 最大循环次数固 mov byte, dl 定,满足条件退出 jmp done notfound: mov byte,-1;ZF=1,16个位均为0 done exit o
.startup mov ax,wordX ;测试目标送AX mov cx,16 ;循环计数器置初值 mov dl,-1 ;计位器置初值 again: inc dl test ax,1 ror ax,1 ;循环指令不影响ZF loope again ;CX≠0且ZF=1(测试位为0),继续循环 je notfound mov byteY,dl jmp done notfound: mov byteY,-1 ;ZF=1,16个位均为0 done: .exit 0 例4.6 计数控制循环 最大循环次数固 定,满足条件退出
mov bx, offset string例4.7大小写 again: mov al, lbx] 取一个字符 oral,a1;是否为结尾符0 jz done 是,退出循环 cmp al,'A’;是否为 jb next 米条件控制循环 cmp al,’z 利用标志退出 Ja next or al. 20h 大小写字母仅D5位不同 ;是,转换为小写字母(使D5=1) mov[bx],al;仍保存在原位置 next: inc bx Jmp again;继续循环 done: exit o ENTER
mov bx,offset string again: mov al,[bx] ;取一个字符 or al,al ;是否为结尾符0 jz done ;是,退出循环 cmp al,'A' ;是否为大写A~Z jb next cmp al,'Z' ja next or al,20h ;是,转换为小写字母(使D5=1) mov [bx],al ;仍保存在原位置 next: inc bx jmp again ;继续循环 done: .exit 0 例4.7 大小写 条件控制循环 利用标志退出 大小写字母仅 D5位不同
冒泡法 图示 冒泡法”是一种排序算法,不是最优的算 法,但它易于理解和实现 >冒泡法从第一个元素开始,依次对相邻的两 个元素进行比较,使前一个元素不大于后 个元素;将所有元素比较完之后,最大的元 素排到了最后;然后,除掉最后一个元素之 外的元素依上述方法再进行比较,得到次大 的元素排在后面;如此重复,直至完成就实 现元素从小到大的排序 >这需要一个双重循环程序结构
冒泡法 ➢ “冒泡法”是一种排序算法,不是最优的算 法,但它易于理解和实现 ➢ 冒泡法从第一个元素开始,依次对相邻的两 个元素进行比较,使前一个元素不大于后一 个元素;将所有元素比较完之后,最大的元 素排到了最后;然后,除掉最后一个元素之 外的元素依上述方法再进行比较,得到次大 的元素排在后面;如此重复,直至完成就实 现元素从小到大的排序 ➢ 这需要一个双重循环程序结构 图示