📄 05_12.asm
字号:
;05_12.asm
;Created by RunningOn Chen.
;2003011434 J34 CS dept, THU
;2005-11-15
;本程序不输出答案,要在debug下才能看出结果
datas segment
data dw 11,12,13,14,15,00,17,18 ;8 numbers
dw 21,22,23,00,25,26,27,28
dw 31,32,33,34,25,00,27,28
dw 41,00,43,44,25,26,27,28
dw 51,52,53,54,00,26,27,28
dw 61,62,63,64,25,00,27,28
dw 71,72,00,74,25,26,27,28
dw 00,82,83,00,25,00,27,28
dw 91,92,00,94,25,26,27,00
dw 01,02,03,04,25,26,00,28
dw 71,72,00,74,25,26,27,28
dw 00,82,83,00,25,00,27,28
dw 01,00,03,04
datas ends
code segment
main proc far
assume ds:datas, cs:code
start:
push ds
mov ax, 0
push ax
mov ax, datas
mov ds, ax
mov es, ax ;di与es配合
mov di, 0
mov si, di
cycle: ;for (si = di = 0 ; si < 200 ; si +=2)
mov ax, data[si] ;{
test ax, 0ffffh ; if (data[si] == 0)
jz continue ; continue;
mov data[di], ax ; data[di] = data[si];
add di, 2 ; di += 2
continue: ;}
add si, 2
cmp si, 200
jl cycle
cmp di, 200
jge exit
add_zero: ;注意此时di即有效地址
mov cx, di
sub cx, 200
neg cx ;cx = 200 - di
shr cx, 1k
mov ax, 0h
cld
rep stosw ;补0
exit:
ret
main endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -