循环嵌套

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
;将data数据中的字母变成大写
assume cs:code ds:data

data segment
db 'ibm '
db 'dec '
db 'dos '
data ends

code segment

start:
mov ax, data
mov ds, ax
mov bx, 0
mov cx, 4
f:
mov al, [bx]
mov ah, 0
and al, 01111111
mov [bx], al
add bx, 8
loop f
mov ax, 4c00h
int 21h

code ends

end start

;多层循环方式,外层循环row,内层循环column
assume cs:code ds:data

data segment
db 'ibm '
db 'dec '
db 'dos '
data ends

code segment

start:
mov ax, data
mov ds, ax
mov bx, 0
mov cx, 4 //4行
rows:
mov dx, cx ;保存游标
mov si, 0
mov cx, 3
cols: ;循环当前行, 8个字节
mov ah, 0
mov al, [bx+si]
and al, 11011111b
mov [bx+si], al
inc si
loop cols

add bx, 8
mov cx, dx ;恢复外层游标
loop rows
mov ax, 4c00h
int 21h

code ends

end start