凡得友 发表于 2022-1-7 22:07:56

关于loop的问题

听课时讲到,循环通常用loop指令,也可以使用其他的指令实现循环功能。谁能给我讲讲其他的指令?谢谢

人造人 发表于 2022-1-7 22:36:58

$ ls
main.sMakefile
$ cat main.s
.data
hello:.string "hello world!\n"
count:.int
fmt:    .string "%d"

.text
.globl main
main:
    pushl   $count
    pushl   $fmt
    calll   scanf
    addl    $8, %esp
    jmp   .L2

.L1:pushl   $hello
    calll   printf
    addl    $4, %esp

    subl    $1, count
.L2:cmpl    $0, count
    jg      .L1

    pushl   $0
    calll   exit
$ cat Makefile
ASFLAGS = -m32 -g -Wall
LDFLAGS = -static

all: main

clean:
        rm -rf main
$ make
cc -m32 -g -Wall -staticmain.s   -o main
$ ls
mainmain.sMakefile
$ ./main
0
$ ./main
1
hello world!
$ ./main
3
hello world!
hello world!
hello world!
$ ./main
5
hello world!
hello world!
hello world!
hello world!
hello world!
$

凡得友 发表于 2022-1-7 22:42:33

人造人 发表于 2022-1-7 22:36


晕。不好意思,我是个小白,刚刚开始学习汇编语言。我想请教的是“汇编语言中,除了loop指令,还有什么指令可以实现循环功能。”

人造人 发表于 2022-1-7 23:26:12

凡得友 发表于 2022-1-7 22:42
晕。不好意思,我是个小白,刚刚开始学习汇编语言。我想请教的是“汇编语言中,除了loop指令,还有什么指 ...

cmp + jmps
页: [1]
查看完整版本: 关于loop的问题