要假C开始)机科学与技术系歌 《汇编语言》第5章 (3)循环控制条件分析 初始化循环 计数值 ●因为循环次数已知,可以使用 BX循环左移 LOOP指令实现,但是必须注意: 个数位 由于循环移位指令中使用CL寄存器 把最右面的数 位转换为ASCI工 作为移位次数寄存器,而LooP指 令的循环次数隐含在CX寄存器中, 因此,必须注意这两者之间的冲突。 ASc工 A F? ●除了可以使用LOOP指令之外,还 可以使用条件跳转指令来实现。 加上7 显示一个字符] LOOP AGAIN DEC计数器 忑 NZ AGAIN N 循环计数值=0? Y ch5 结束 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 开始 初始化循环 计数值 BX循环左移 一个数位 把最右面的数 位转换为ASCII 是ASCII A~F? 加上7 显示一个字符 循环计数值=0? 结束 Y N N Y (3)循环控制条件分析 ●因为循环次数已知,可以使用 LOOP指令实现,但是必须注意: 由于循环移位指令中使用CL寄存器 作为移位次数寄存器,而LOOP 指 令的循环次数隐含在CX寄存器中, 因此,必须注意这两者之间的冲突。 ●除了可以使用LOOP指令之外,还 可以使用条件跳转指令来实现。 LOOP AGAIN DEC 计数器 JNZ AGAIN
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第5章 方法1L0oP) mov Cx 4 ;初始化 rotate: push CX moy cl 4 ro bx. cl mov al, bl and al ofh add al. 30h 0'N'9 ASCII 30H 39H cmp al, 3ah j1 printit add al 7h A'N'F ASCII 41H 46H printit:r mov dl, al mov ah, 2 int 21h pop CX loop rotate ch5 2021/1/26
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第5章 ch5 2021/1/26 …… mov cx, 4 ;初始化 rotate: push cx mov cl, 4 rol bx, cl mov al, bl and al, 0fh add al, 30h ; ’0’~’9’ ASCII 30H~39H cmp al, 3ah jl printit add al, 7h ; ’A’~’F’ ASCII 41H~46H printit: mov dl, al mov ah, 2 int 21h pop cx loop rotate …… 方法1 (LOOP)