⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.asm

📁 关于linux环境下的nasm代码的生成和使用
💻 ASM
字号:
;; file: math.asm; This program demonstrates how the integer multiplication and division; instructions work.;; To create executable:; nasm -f coff math.asm; gcc -o math math.o driver.c asm_io.o%include "asm_io.inc"segment .data;; Output strings;prompt          db    "Enter a number: ", 0square_msg      db    "Square of input is ", 0cube_msg        db    "Cube of input is ", 0cube25_msg      db    "Cube of input times 25 is ", 0quot_msg        db    "Quotient of cube/100 is ", 0rem_msg         db    "Remainder of cube/100 is ", 0neg_msg         db    "The negation of the remainder is ", 0segment .bssinput   resd 1segment .text        global  asm_mainasm_main:        enter   0,0               ; setup routine        pusha        mov     eax, prompt        call    print_string        call    read_int        mov     [input], eax        imul    eax               ; edx:eax = eax * eax        mov     ebx, eax          ; save answer in ebx        mov     eax, square_msg        call    print_string        mov     eax, ebx        call    print_int        call    print_nl        mov     ebx, eax        imul    ebx, [input]      ; ebx *= [input]        mov     eax, cube_msg        call    print_string        mov     eax, ebx        call    print_int        call    print_nl        imul    ecx, ebx, 25      ; ecx = ebx*25        mov     eax, cube25_msg        call    print_string        mov     eax, ecx        call    print_int        call    print_nl        mov     eax, ebx        cdq                       ; initialize edx by sign extension        mov     ecx, 100          ; can't divide by immediate value        idiv    ecx               ; edx:eax / ecx        mov     ecx, eax          ; save quotient into ecx        mov     eax, quot_msg        call    print_string        mov     eax, ecx        call    print_int        call    print_nl        mov     eax, rem_msg        call    print_string        mov     eax, edx        call    print_int        call    print_nl                neg     edx               ; negate the remainder        mov     eax, neg_msg        call    print_string        mov     eax, edx        call    print_int        call    print_nl        popa        mov     eax, 0            ; return back to C        leave                             ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -