板凳——————————————————(枯藤 )MIX汇编 前导(3)
.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)相关推荐
- 板凳——————————————————(枯藤 )MIX汇编 前导(6)
//2019年天津大学智算学部汇编语言程序设计-李罡 //2020年08月09日 15时05分15秒 The direction depends on DF, if DF = 1 they decre ...
- 用c语言打开mix文件,MIX教程
1.简介 MIX是The Art of Computer Programming书中所用的汇编语言. 寄存器:有9个寄存器,A.X.J.I1.I2.I3.I4.I5.I6.I1~I6为变址寄存器.参见 ...
- go 格式化占位符详解
目录 1.通用占位符(打印不同类型) 2.布尔型 3.整型 4.浮点数与复数 5.字符串和[]byte 6.指针 7.宽度标识符 8.其他falg fmt包的*printf系列函数都支持format格 ...
- 计算机网络应用押韵句,沙雕押韵很可爱的rap的句子 笑掉大牙的押韵句子
1.爱情经不起等待,叫我宝贝就现在. 2.只要哥哥长得帅,备胎成群我也爱. 3.那些过不去的坎,还不都是因为你腿短. 4.跟着大哥混,三天饿九顿. 5.不笑运气差,一笑脸就大. 6.我爱你,你爱她,你 ...
- Golang标准库中的fmt
Golang标准库中的fmt fmt包实现了类似C语言printf和scanf的格式化I/O.主要分为向外输出内容和获取输入内容两大部分. 1. 向外输出 标准库fmt提供了以下几种输出相关函数. P ...
- 产品经理和程序员的爱恨情仇
产品经理跪求程序员,程序员跪求程序成功上线! 前几天纯银V在微博上发了一条微博「很多人吐槽"人人都是产品经理"这句话,其实在我看来,这句话的正确理解是"人人都应该学习产品 ...
- 陈芳,高考之后我要学计算机专业,将来做 IT 发财了,我就娶你!
作者 | 张小方 来源 | 程序员小方(ID:PursuitOfThatGirl) 又是一年高考时,许多人的命运在这场考试后改变.今年的高考是 7 月 7 日,比以往来的更晚一些.我总觉得 7 月 7 ...
- 基于自然语言的软件工程和程序设计(下)
软件发展至今,无论是编程语言,还是软件工程,乃至是互联网的趋势发展,都是飞速发展.于是,我们便迷茫于这样形形色色的语言和概念之间,无所适从.其实,我们不妨返璞归真,回到最初,让我们从语义出发,来讨论这 ...
- 学数学或物理学到 high 很刺激,是一种怎样的经历与感受?
吴育昕 ,Google-Megvii-FAIR炼丹中 田渊栋 等 1346 人赞同 当年学线性代数. 一开始看的都是中规中矩的教材, 从行列式出发, 讲矩阵, 讲线性变换. 然后有一天没忍住, 看了那 ...
最新文章
- h5首页加载慢_H5网站好不好?
- innerHTML与innerText
- [云炬创业基础笔记] 第四章测试12
- Problem D: 链表的基本运算(线性表)
- MYSQL安装和配置
- DOCKER容器与宿主机同网段互相通信
- android优雅的一个侧滑
- css3直线运动_CSS3中如何使元素曲线运动
- (数据科学学习手札07)R在数据框操作上方法的总结(初级篇)
- python数据框添加一列无列名_Pandas只使用列名创建空数据框
- R2CNN 算法笔记
- OpenLayers教程十五:多源数据加载之矢量地图
- python和ruby性能比较_Ruby和Python的比较
- 3D模型欣赏:汉服美女 【3D游戏建模教程】
- 26367411153598389kygoq
- 解决每次弹出“是否允许XX录制/投射您的屏幕”(享做笔记、王者荣耀等)手把手教程
- ASUS华硕笔记本FN快捷键无法调节屏幕亮度
- 【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发
- jQuerry实现CSS动画样式跳跃显示
- java将小写数字变成大写输出
热门文章
- 出海随笔(2021年7月)
- Spring boot 整合disruptor
- WINDAPI读取期货交易数据
- 工程总承包理念方法适用于所有施工总承包项目
- P2P技术详解(三):P2P技术之STUN、TURN、ICE详解 (webrtc)
- 递归实现排列组合问题
- 串口控制74HC164C语言,STM8 74hc164串口输出扩为并口输出子程序
- C语言编程练习:求符合给定条件的整数集
- python十六进制运算_十六进制字符串hexstr的计算
- java.sql.SQLException: Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY报错