.section .data

output:
.ascii “The value is x\n”
values:
.int 1, 3, 5, 7, 9

.section .text

.globl main
main:
nop
movl $output, %esi
movl $0, %edi #将0移入索引寄存器
loop:
movl values(, %edi, 4), %eax #加载数据的第一个字
addl $0x30, %eax
movb %al, 13(%esi)
movl $4, %eax
movl $1, %ebx
movl $output, %ecx

 movl $15, %edx                        #由于这是第一项, %eax就是最大值int $0x80inc %edicmpl $5, %edi                          #检测是否到达数据末尾jne loopmovl $0, %ebxmovl $1,  %eaxint $0x80

wannian07@wannian07-PC:~$ gedit hello.s
wannian07@wannian07-PC:~$ gcc -g hello.s -o hello
wannian07@wannian07-PC:~$ ./hello
The value is 1
The value is 3
The value is 5
The value is 7
The value is 9

/
/
// 2020年08月04日 14时08分00秒
// AT&T风格汇编语言 2019天津大学智算学部汇编语言程序设计-李罡
for (out = array_size-1; out > 0; out–){
for(in = 0; in < out; in++){
if(array[in] > array[in + 1]){
swap(array[in], array[in + 1]);
}
}
}

enter_region:
MOVE REGISTER, #1                            | put a 1 in the register
XCHG REGISTER, LOCK                          | swap the contents of the register and lock variable
CMP REGISTER, #0                             | was lock zero?
JNE enter_region                             | if it was non zero, lock was set, so loop
RET                                          | return to caller, critical region enteredleave_region
MOVE LOCK, #0                                | store a 0 in lock
RET                                          | return to callerXCHG operand1, operand2
operand1, operand2
Can be both general-purpose registers
or one is general-purpose registers, the other is memory
CANNOT be both memory
GPRS can be 8-bits, 16-bits, 32-bits or 64-bits. But op1 and op2 must have same length

*/
#bubble.s - An example of the XCHG instruction
.section .data
values:
.int 105, 235, 61, 315, 134, 221, 53, 145, 117, 5
.section .text
.globl main
main:
movl $values, %esi #values 地址交给 esi, esi作为指针
movl $9, %ecx # 外循环
movl $9, %ebx        #  内循环
loop:
movl (%esi), %eax # 1 105 传给 eax                   #7 (235 给 esi)
cmp %eax, 4(%esi)     # 2  比较105 和 地址 4+(%esi) = 235;  #8 235 vs 61
jge skip         # 3 大于等于吗 (235 - 105) 跳转skip
xchg %eax, 4(%esi)                   #9 235 与 61地址  内容交换 235->61,两个都是内存,                                              # 不允许直接操作 交换
movl %eax, (%esi)                  #10  61 传到 235的地址位置 .... 315沉底
skip:
add $4, %esi      #4 取下一个地址 
dec %ebx        #5 ebx-1  
jnz loop        #6 不等于零, 就循环
dec %ecx
jz end
movl $values, %esi 
movl %ecx, %ebx
jmp loop
end:
movl $1, %eax
movl $0, %ebx
int $0x80

板凳——————————————————(枯藤 )MIX汇编 前导(3)相关推荐

  1. 板凳——————————————————(枯藤 )MIX汇编 前导(6)

    //2019年天津大学智算学部汇编语言程序设计-李罡 //2020年08月09日 15时05分15秒 The direction depends on DF, if DF = 1 they decre ...

  2. 用c语言打开mix文件,MIX教程

    1.简介 MIX是The Art of Computer Programming书中所用的汇编语言. 寄存器:有9个寄存器,A.X.J.I1.I2.I3.I4.I5.I6.I1~I6为变址寄存器.参见 ...

  3. go 格式化占位符详解

    目录 1.通用占位符(打印不同类型) 2.布尔型 3.整型 4.浮点数与复数 5.字符串和[]byte 6.指针 7.宽度标识符 8.其他falg fmt包的*printf系列函数都支持format格 ...

  4. 计算机网络应用押韵句,沙雕押韵很可爱的rap的句子 笑掉大牙的押韵句子

    1.爱情经不起等待,叫我宝贝就现在. 2.只要哥哥长得帅,备胎成群我也爱. 3.那些过不去的坎,还不都是因为你腿短. 4.跟着大哥混,三天饿九顿. 5.不笑运气差,一笑脸就大. 6.我爱你,你爱她,你 ...

  5. Golang标准库中的fmt

    Golang标准库中的fmt fmt包实现了类似C语言printf和scanf的格式化I/O.主要分为向外输出内容和获取输入内容两大部分. 1. 向外输出 标准库fmt提供了以下几种输出相关函数. P ...

  6. 产品经理和程序员的爱恨情仇

    产品经理跪求程序员,程序员跪求程序成功上线! 前几天纯银V在微博上发了一条微博「很多人吐槽"人人都是产品经理"这句话,其实在我看来,这句话的正确理解是"人人都应该学习产品 ...

  7. 陈芳,高考之后我要学计算机专业,将来做 IT 发财了,我就娶你!

    作者 | 张小方 来源 | 程序员小方(ID:PursuitOfThatGirl) 又是一年高考时,许多人的命运在这场考试后改变.今年的高考是 7 月 7 日,比以往来的更晚一些.我总觉得 7 月 7 ...

  8. 基于自然语言的软件工程和程序设计(下)

    软件发展至今,无论是编程语言,还是软件工程,乃至是互联网的趋势发展,都是飞速发展.于是,我们便迷茫于这样形形色色的语言和概念之间,无所适从.其实,我们不妨返璞归真,回到最初,让我们从语义出发,来讨论这 ...

  9. 学数学或物理学到 high 很刺激,是一种怎样的经历与感受?

    吴育昕 ,Google-Megvii-FAIR炼丹中 田渊栋 等 1346 人赞同 当年学线性代数. 一开始看的都是中规中矩的教材, 从行列式出发, 讲矩阵, 讲线性变换. 然后有一天没忍住, 看了那 ...

最新文章

  1. h5首页加载慢_H5网站好不好?
  2. innerHTML与innerText
  3. [云炬创业基础笔记] 第四章测试12
  4. Problem D: 链表的基本运算(线性表)
  5. MYSQL安装和配置
  6. DOCKER容器与宿主机同网段互相通信
  7. android优雅的一个侧滑
  8. css3直线运动_CSS3中如何使元素曲线运动
  9. (数据科学学习手札07)R在数据框操作上方法的总结(初级篇)
  10. python数据框添加一列无列名_Pandas只使用列名创建空数据框
  11. R2CNN 算法笔记
  12. OpenLayers教程十五:多源数据加载之矢量地图
  13. python和ruby性能比较_Ruby和Python的比较
  14. 3D模型欣赏:汉服美女 【3D游戏建模教程】
  15. 26367411153598389kygoq
  16. 解决每次弹出“是否允许XX录制/投射您的屏幕”(享做笔记、王者荣耀等)手把手教程
  17. ASUS华硕笔记本FN快捷键无法调节屏幕亮度
  18. 【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发
  19. jQuerry实现CSS动画样式跳跃显示
  20. java将小写数字变成大写输出

热门文章

  1. 出海随笔(2021年7月)
  2. Spring boot 整合disruptor
  3. WINDAPI读取期货交易数据
  4. 工程总承包理念方法适用于所有施工总承包项目
  5. P2P技术详解(三):P2P技术之STUN、TURN、ICE详解 (webrtc)
  6. 递归实现排列组合问题
  7. 串口控制74HC164C语言,STM8 74hc164串口输出扩为并口输出子程序
  8. C语言编程练习:求符合给定条件的整数集
  9. python十六进制运算_十六进制字符串hexstr的计算
  10. java.sql.SQLException: Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY报错