ICS2019-Linux汇编实验指导

Posted Cherrison

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ICS2019-Linux汇编实验指导相关的知识,希望对你有一定的参考价值。

ICS2019-Linux汇编实验指导

环境配好了? 开始调试

一. 首先安装NASM

1. 先判断系统是否已经安装了nasm


打开终端,执行  whereis nasm ;如果显示nasm: /usr/bin/nasm ,则已经安装;如果只显示nasm:,则未安装。

 

如下图 则是未安装状态



2.下载NASM

 

点击这个链接下载

3.按照下面步骤安装nasm

依次输入以下命令

tar xzvf nasm-2.14.02.tar.gz  //  解压nasm


cd nasm-2.14.02   // 进入目录


./configure   // {configure脚本会寻找最合适的C编译器,并生成相应的makefile文件}


接着输入 make 创建nasm和ndisasm 的二进制代码



最后输入 make install 进行安装(这一步需要root权限)



make install会将 nasm 和ndisasm 装进/usr/local/bin 并安装相应的man pages。

如果想验证是否安装成功的话,输入whereis nasm

 这样就安装成功了

二. 测试一下

1. 新建文件,将其命名为hello.asm,编辑并保存

 

section .data
  hello:     db \'Hello world!\',10    ; \'Hello world!\' plus a linefeed character
  helloLen:  equ $-hello             ; Length of the \'Hello world!\' string
                                     ; (I\'ll explain soon)
section .text
  global _start
_start:
  mov eax,4            ; The system call for write (sys_write)
  mov ebx,1            ; File descriptor 1 - standard output
  mov ecx,hello        ; Put the offset of hello in ecx
  mov edx,helloLen     ; helloLen is a constant, so we don\'t need to say
                       ;  mov edx,[helloLen] to get it\'s actual value
  int 80h              ; Call the kernel
  mov eax,1            ; The system call for exit (sys_exit)
  mov ebx,0            ; Exit with return code of 0 (no error)
  int 80h

 

2. 编译

nasm -f elf64 hello.asm  // elf64是64位机 如果是32位机请使用elf32

3. 链接

 ld -s -o hello hello.o 

4.运行

 ./hello 

 

 

运行结果如下所示:

本人水平有限, 如有问题请在下面评论指出

以上是关于ICS2019-Linux汇编实验指导的主要内容,如果未能解决你的问题,请参考以下文章

ICS计算系统概论LC3汇编实验Lab5—中断递归解决汉诺塔问题

ICS计算系统概论LC3汇编实验Lab5—中断递归解决汉诺塔问题

ICS计算系统概论LC3汇编实验Lab4—排序和计数 Sort and Count

ICS计算系统概论LC3汇编实验Lab4—排序和计数 Sort and Count

汇编实验三

汇编语言程序设计实验报告一