有人可以解释一下吗?
请
| cs:0100 33 D2 xor dx,dx
| cs:0102 B9 10 00 mov cx,0100)h
| cs:0105 BE 0F 00 mov si,00FF)h
| cs:0108 FD std
| cs:0109 AC ARQ:lodsb
| cs:010A 24 03和al,03)h
| cs:010C 75 01 jne UTN
| cs:010E 42 inc dx
| cs:010F E2 F8 UTN:循环ARQ
| cs:0111 90 nop
答案 0 :(得分:1)
简短解释:基本上,它考虑从地址DS:0开始的256字节数组,并将包含零的字节数计入其最低位。 DX包含结果。
冗长的解释: DX设置为零(xor dx,dx),CX是循环计数器(0100h =要检查的数组的长度),SI是数组中的索引,它从00ffh开始,即数组中的最后一个字节。循环接收由DS指示的字节AL:SI(lodsb)并测试最低两位是否为零(和al,03h; jne UTN)。如果它们为零,则DX递增。索引SI由lodsb指令自动递减(“std”指令选择自动递减)。重复该循环直到CX达到零(循环ARQ)。