+ -
当前位置:首页 → 问答吧 → 在字节数组中找出第一个0元素,并显示输出第一个零元素的下标

在字节数组中找出第一个0元素,并显示输出第一个零元素的下标

时间:2010-11-12

来源:互联网

data segment 
array db 1,2,3,17,33,0,1,0,5,4
count equ $-offset array
data ends
code segment
assumen ds:data ,cs:code
start:mov ax,data
  mov ds,ax
  mov cx,count
  mov di,0ffffh ; -1送到DI
 next: inc di
  cmp array[di],0
  loopnz next
  je ok
  mov dl,'n'
  jmp disp
ok :mov dx,di
  or dl,30h
disp: mov ah,02h
  int 21h
  mov ax,4c00h
  int 21h
 code ends
 end start 

问:mov di,0ffffh ; -1送到DI
  next: inc di
  为什么要这样?

 assumen ds:data ,cs:code 在code segment后面和在最开头有区别么?(看王爽老师的书 都是把ASSUME放在最开始的)

作者: znxllyuan   发布时间: 2010-11-12

1
mov di,0ffffh ; -1送到DI
  next: inc di
-------------------------
如果把di初始化成零的话,inc di就要放在cmp array[di],0的后面,我觉得是个人风格吧

2
assumen ds:data ,cs:code 在code segment后面和在最开头有区别么?
--------------------------------------------------------------
没区别! masm汇编的时候会自动根据assume伪指令把相应的段与段寄存器联系起来。

作者: masmaster   发布时间: 2010-11-12