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 

运行结果如下所示:

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

原文地址:https://www.cnblogs.com/Cherrison-Time/p/11756239.html

时间: 2024-10-14 23:12:29

ICS2019-Linux汇编实验指导的相关文章

操作系统实验指导书(完整版)

操作系统实验指导书 烟台大学计算机学院 操作系统课程组 2008-9-20 第一部分  操作系统上机指导   Linux操作系统环境: RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL) Red Flag Linux release 4.0 (HOT) (2.4)   登录到系统 常用命令练习: 用root账号(超级用户)注册,口令为computer(注意大小写).注册成功出现#号(超级用户系统提示符,普通用户

汇编实验三

 实验内容: 1.首先,在DOS上运行相应代码后,情况如下: 再依照实验指导将代码改成如下后: 得到如下反馈: 再用DOS中的R命令查看相应寄存器的变化 确实满足CS=DS+10H的关系.再验证一次: 接着用U命令对该程序进行反汇编,情况如下: 再用T命令和P命令进行调试,得到如下情况: 2.  实验结论: 通过这次实验,学会了masm环境下汇编的使用,又学会了一项新技能呢. 原文地址:https://www.cnblogs.com/yrcz/p/9940729.html

汇编实验课程设计1之设置时间半成品

;    感觉双休就想睡觉,这鬼天气,一直下雨.设置时间未完成,只是加了一个所谓的主界面;   display system time. press f1 to change the color displayed, press esc to return main list. f3 exit;    clear_screen 清空屏幕assume cs:codesgstacksg segment    dw 128 dup(0)stacksg endscodesg segment      

lingo运筹学上机实验指导

<运筹学上机实验指导>分为两个部分,第一部分12学时,是与运筹学理论课上机同步配套的4个实验(线性规划.灵敏度分析.运输问题与指派问题.最短路问题和背包问题)的Excel.LONGO和LINDO求解方法和3个大综合作业,并配有解答和操作的视频:第二部分16学时,介绍LINGO求解运筹学中线性.整数等问题,主要侧重介绍解决大规模的运筹学问题,包含10个实验和1个综合大实验,并附有求解过程.答案及相应的视频,且答案经过上课检验全部正确.建议在上完“运筹学”的理论课和基本了解Excel.LONGO和

王爽汇编实验九

1 ;实验九 2 assume cs:code,ds:data 3 data segment 4 db 'welcome to masm!' 5 data ends 6 7 code segment 8 start : 9 mov ax,data 10 mov ds,ax;定义数据段 11 12 mov ax,0B800h 13 mov es,ax;定义显示段 14 15 mov cx,16 16 mov si,0 17 mov di,10*160+80 ;将输出显示放在第10行中间 18 19

汇编实验:彩色字符中间位置显示字符串

汇编实验九:在屏幕中间位置显示三行彩色字符串 80*25彩色字符模式显示缓冲区在B8000H到BFFFFH位置.一行80个字符号,160个字节.其中每个字的低位存储ASC2码,高位存储字符颜色属性.属性格式: 7 6 5 4 3 2 1 0 BL R G B I R G B7闪烁: 6.5.4背景: 3高亮: 2.1.0前景 0 1 0 0 1 0 1 0 4ah 0 1 0 0 0 1 0 1 45h 0 0 1 0 0 0 0 1 21h 1 assume cs:codes,ds:dates

Linux 汇编

Linux 汇编语法格式 绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 Intel 风格的.但在 Unix 和 Linux 系统中,更多采用的还是 AT&T 格式,两者在语法格式上有着很大的不同: 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如: AT&T 格式 Intel 格式 pushl %eax push eax 在 AT&T 汇编格式中,用 '$'

web实验指导书和课后习题参考答案

实验指导书 :http://course.baidu.com/view/daf55bd026fff705cc170add.html 课后习题参考答案:http://wenku.baidu.com/link?url=LJ9YiTw0GISMKZDl0yik8IBFnEZvgrZBsLMyZ8leqWDnRSRKvZfhEf2r39TNPzVLLEmSy92uVCQIJFKdArozoOBL60yg0v9MR5xcbTPESAm

王爽汇编实验十一

;实验11 ;把小写字母换成大写字母 assume cs:code , ds:data data segment db "Beginner's All-purpose Symbolic Instruction Code.",0 data ends code segment start: mov ax,data mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: push ax push si fun: mov al