冒泡排序(汇编语言实现)

来自一次汇编语言实验。 我进行了详细的注解。 汇编语言与硬件结合较紧密,代码很多都是寄存器操作和地址运算。编写或阅读汇编程序时,脑袋中需要有这样一幅底层机器的画卷:各种寄存器的数据和状态;内存中的数据段,代码段的位置;各个jump指令如何实现跳转及分支结构;什么时候需要保存现场等等。我觉得借助这样一种形象化的思维(寄存器状态和内存的实址物理结构)可以更好地编写汇编程序;相反,中高级语言如c语言,只考虑内存的逻辑结构和语法规则就行。 ;#Mode=DOS DATA SEGMENT DAT DB 3,1,2,4,8,5,9,6,10,7 COUNT DB 10,10 DATA ENDS ;............................. CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START:MOV AX,DATA MOV DS,AX MOV ES,AX MOV BL,1 LP1: CMP BL,0 JE B_OUT XOR BL,BL ;将BL清零 MOV CL,COUNT ;COUNT用于外层的计数 DEC CL ;CL用于内层的计数 push cx ;将CX压入堆栈 LEA DI,DAT ;将数据段首地址赋值给DI LP2: MOV AL,[DI] CMP AL,[DI+1] ;将前一个数字与后一个数字比较 JLE LP3 [...]

转载于:https://my.oschina.net/impeng/blog/11251

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值