在WSL中使用Ubuntu第二代

概述

我试着在WSL中使用Ubuntu。

安装gcc

sudo apt install build-essential

示例代码

使用gcc编译器,无需生成位置独立代码,将fizzbuzz.S文件进行编译。

.code32
.text
.global main

main:
    mov     $1, %esi
loop:
    mov     %esi, %eax
    mov     $15, %ebx
    div     %bl
    cmp     $0, %ah
    jz      loop15
    mov     %esi, %eax
    mov     $5, %ebx
    div     %bl
    cmp     $0, %ah
    jz      loop5
    mov     %esi, %eax
    mov     $3, %ebx
    div     %bl
    cmp     $0, %ah
    jz      loop3
    mov     $fmt, %edi
loop2:  
    mov     $0, %eax
    push    %esi
    call    printf
    pop     %esi
loop1:
    add     $1, %esi
    cmp     $101, %esi
    jnz     loop
    ret

loop15:
    mov     $fizzbuzz, %edi
    jmp     loop2
loop5:
    mov     $buzz, %edi
    jmp     loop2
loop3:
    mov     $fizz, %edi
    jmp     loop2

.data
fmt:
    .asciz  "%d "
num:
    .asciz  "%i "
fizz:
    .asciz  "Fizz "
buzz:
    .asciz  "Buzz "
fizzbuzz:
    .asciz  "FizzBuzz " 

以上。 .)