汇编中 循环的语法是 C语言中的循环
mov cs,N //循环最大次数 <-----> int i=N;
blockName: //循环开始 <-----> for(;i>0;i++){
//xxx。。。 //循环中的语句 <-----> //XXXX
loop blockName //循环结束 <-----> }
另附上汇编示例代码
1 assume cs:code 2 code segment 3 start: 4 mov cx,3 5 mov ax,1 6 7 s: 8 sub ax,2 9 mov bx,cx ;备份外层循环次数 10 mov cx,2 ;给内层循环次数赋值 11 n: ;内层循环开始 12 add ax,1 13 loop n ;内层循环结束 14 mov cx,bx ;恢复外层循环次数 15 loop s ;外层循环结束 16 int 21h 17 code ends 18 end start 19
loop X 的作用其实只是将当前 CS:IP 中的IP
赋值为当前X的地址 从而实现跳转
当然跳转之前会将寄存器cx的值减1
若CX的值为0 则跳出循环
寄存器变化:
图1-loop循环寄存器的值
时间: 2024-10-31 09:59:41