在字节数组中找出第一个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放在最开始的)
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伪指令把相应的段与段寄存器联系起来。
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28