@TOC
前言
编程语言相关基础知识
一、布尔表达式在汇编中的应用
NOT运算可以用来计算反码
AND运算可以用来执行栈对齐,也可以切换大写与小写
OR运算可以判断数字式大于,小于还是等于0
XOR运算可以用来清零,还可以判断某数是奇数还是偶数
此外,通过掩码(mask),可以用AND来关闭二进制位(也就是将其设置为0)。
二、计算机补码表示法
·0总是用所有二进制位都是0的数来表示
·-1总是用所有二进制位都是1 的数来表示
·值最小的负整数总是用开头为1且其余二进制位均为0的数来表示
·值最大的正整数总是用开头为0且其余二进制位均为1的数来表示
三、冒泡排序程序的汇编代码
#Assembly
.data
array : .long 3,2,6,4,1
count : .long 5
.text
.globl _main
_main:
mov count,%ecx
dec %ecx
outerLoop:
push %ecx
lea array,%esi
innerLoop:
mov (%esi),%eax
cmp %eax,4(%esi)
jg nextStep
xchg 4(%esi),%eax
mov %eax,(%esi)
nextStep:
add $4,%esi
loop innerLoop
pop %ecx
loop outerLoop
push $0
sub $4,%esp
mov $1,%eax
int $0x80
.end