(五)汇编语言——[bx]和loop指令-创新互联
目录
成都创新互联主要业务有网站营销策划、成都做网站、成都网站制作、微信公众号开发、小程序设计、HTML5建站、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、营销型网站建设资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。[...]与(...)
[...]
(...)
idata
Loop指令
段前缀
总结
[...]与(...) [...]
(...)这个我们其实见过,代表的是一个内存单元,段地址在DS中,偏移地址就是[bx]。
这个是表示一个内存单元或寄存器中的内容,但是千万要注意,这个是人为规定的,不是汇编语法,上面那个是汇编语法。
idata比如:movax,[2],这个指令,用()来表示就是:(ax)=((ds)*16+2)。
Loop指令我们规定,符号idata表示常量。
功能就是实现循环,有点类似与C语言的for循环,我们一起来看一看这到底是这么用的吧!
这个计数,靠的就是cx寄存器,cx寄存器里的数就是循环次数,然后标号就是执行的语句。接下来我们来看一看汇编代码。
- (cx)=(cx)-1;
- 判断cx中的值不为零则转至标号处执行程序如果为零则向下执行。
assume cs:code
code segment
mov ax,2;
mov cx,11
s: add ax,ax
loop s
mov ax,4c00h
int 21h
code ends
end
段前缀我们可以看到这个代码,本来很正常,但是经过编译之后,就变了,变成把00这个数放到AL寄存器里面了。 所以,我们需要使用段前缀来表示。
assume cs:code
code segment
mov ax,2000h
mov ds,ax
mov al,[0]
mov bl,[1]
mov cl,[2]
mov dl,[3]
mov ax,4c00h
int 21h
code ends
end
关于段前缀,使用方法还是比较简单的,就是在地址前加上段地址,如下。
mov ax,2000h
mov ds,ax
mov bx,0
mov al,ds:[bx]
总结比较简单,继续学习。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:(五)汇编语言——[bx]和loop指令-创新互联
转载来源:http://scyanting.com/article/dpcejg.html