谁有32位汇编语言程序设计计的书

ibm pc汇编语言程序设计 pdf|IBM-PC汇编语言程序设计(第五版)高清扫描版电子书-东坡下载
东坡下载:内容最丰富最安全的下载站!
→ IBM-PC汇编语言程序设计(第五版) 高清扫描版电子书
有人说IBM-PC汇编语言程序设计(第五版)是本纯课本类教程书籍,除了学校会用这种书之外――自己入门学习还是算了吧!不过,内容还算不错的――话说到此,东坡小编要为大家介绍的是本书的确为清华大学计算机汇编语言程序设计课教材,本节内容东坡小编为大家整理带来的是一份pdf格式高清扫描版电子书,以下是相关内容介绍,想要查阅该电子书全部内容的朋友点击本文相应的下载地址进行下载即可!IBM-PC汇编语言程序设计(第五版)目录前言第一章 基础知识1.1 进位计数制与不同基数的数之间的转换1.2 二进制数和十六进制数运算1.3 计算机中数和字符的表示1.4 几种基本的逻辑运算习题第二章 IBMPC计算机组织2.1 计算机系统概述2.2 存储器2.3 中央处理机2.4 外部设备习题第三章 IBMPC机的指令系统和寻址方式3.1 IBMPC机的寻址方式3.2 IBMPC机的机器语言指令概况3.3 IBMPC机的指令系统习题第四章 汇编语言程序格式4.1 汇编程序功能4.2 伪操作4.3 汇编语言程序格式4.4 汇编语言程序的上机过程习题第五章 循环与分支程序设计5.1 循环程序设计5.2 分支程序设计习题第六章 子程序结构6.1 子程序的设计方法6.2 嵌套与递归子程序6.3 子程序举例6.4 DOS系统功能调用习题第七章 高级汇编语言技术7.1 宏汇编7.2 重复汇编7.3 条件汇编习题第八章 输入/输出程序设计8.1 I/O设备的数据传送方式8.2 程序直接控制I/O方式8.3 中断传送方式习题第九章 BIOS和DOS中断9.1 键盘I/O9.2 显示器I/O9.3 打印机I/O9.4 串行通讯口I/O习题第十章 单色和彩色图形显示10.1 显示方式10.2 文本方式10.3 字符图形10.4 动画显示的基础10.5 彩色图形习题第十一章 发声系统的程序设计11.1 扬声器驱动系统11.2 通用发声程序11.3 乐曲程序11.4 键盘控制发声程序11.5 报警程序习题第十二章 磁盘文件存取技术12.1 利用文件控制块(FCB)的磁盘存取方式12.2 文件代号式磁盘存取12.3 字符设备的文件代号式I/O12.4 BIOS磁盘存取功能习题第十三章 模块化程序设计13.1 汇编程序概述13.2 连接程序及连接对程序设计的要求13.3 汇编语言程序与高级语言程序的连接13.4 模块化程序设计概述习题附录附录一 指令系统一览表附录二 伪操作表附录三 中断向量地址一览表附录四 DOS功能调用附录五 BIOS中断附录六 DEBUG主要命令附录七 汇编程序出错信息参考文献IBM-PC汇编语言程序设计(第五版)内容简介本书主要阐述80X86汇编语言程序设计方法和技术。全书共分四部分:第1章和第2章为基础知识部分;第3章和第4章为编程工具部分,主要内容为80X86的指令系统与寻址方式,以及包括伪操作在内的汇编语言程序格式;第5章-第9章说明编程方法,内容包括循环、分支、子程序等基本程序结构,程序设计的基本方法和技术,多模块连接技术,宏汇编技术,以中断为主的输入输出程序设计方法,以及BIOS和DOS系统功能调用;第10章和第11章为实际应用部分,说明图形显示、发声和磁盘文件存取技术。全书提供了大量程序实例,每章后均附有习题。本书在是1991年第1版的基础上,融会了10年来教学与科研的新成果改编成的。其第1版曾先后获得过原电子工业部工科电子类专业优秀教材一等奖、教育部科技进步一等奖、国家科技进步三等奖等;受到广大读者的欢迎,累计发行达130多万册。本书适用于高等院校以及大、中专院校作为“汇编语言程序设计”课程的教材,本书也适于初学者使用,只要具有一种高级语言程序设计基础的读者,都可通过学习本书掌握汇编语言程序设计技术。IBM-PC汇编语言程序设计(第五版)内容截图
安卓官方手机版
IOS官方手机版
IBM-PC汇编语言程序设计(第五版)截图
IBM-PC汇编语言程序设计(第五版) 高清扫描版电子书
本类最新软件
本类软件推荐
75KB / 06-01 / 免费版【云朵动画】
125KB / 06-01 / 【化学logo素材】
23.9M / 06-01 / pdf格式免费版【05S52图集】
1.8M / 06-01 / pdf格式免费高清版【无水印】
19.1M / 06-01 / pdf格式免费版【清晰图集】
本类软件排行
装机必备软件
素材字体高考学习
请简要描述您遇到的错误,我们将尽快予以修正。
轮坛转帖HTML方式
轮坛转帖UBB方式汇编语言程序设计一书,在32位系统下应该不会有什么问题,然而在64位系统下,则会有些不一样的地方。有些程序范例还会汇编错误或者执行错误。
博主所用系统为CentOS v6.4 x64。本文主要解决32位的汇编程序如何在64位环境下汇编、连接,而不论述64位汇编语言如何设计。
1. 64位系统下编译32位的C程序
以程序test5.c为例,程序代码很简单,如下:
test5.c#include &stdio.h&
int main()
char str[4];
str[0]='f';
str[1]='g';
str[2]='j';
str[3] = 0;
printf("CPU id is %s\n", str);
这个C源程序没有什么32位还是64位之说,用gcc编译后,在64位系统下就得到64位的elf文件,执行也不会有问题,如下图所示:
上图用file test5很清楚的看到是64-bit的文件。
那么怎么编译成32位的程序呢?用-m32参数。会发现有错误,错误如下:
对于警告和exit不兼容,可以包含头文件stdlib.h就可以解决。
对于gnu/stubs-32.h:没有哪个文件或目录,需要安装glibc-devel和glibc-devel.i686。对于CentOS,安装命令为:yum install glibc-devel和yum install glibc-devel.i686。
yum install glibc-devel,如下图:
yum install glibc-devel.i686,如下图:
之后使用-m32编译,就不会再发生问题了。如下图:
上图用file test5很清楚的看到是32-bit的文件。
总结以上主要有三点:
64位系统下编译32位程序使用-m32参数,即gcc &m32 &o output_file input_file.c
提示隐式声明与内建函数&exit&不兼容的警告,增加#include &stdlib.h&来解决
gnu/stubs-32.h:没有哪个文件或目录的错误,需要安装glibc-devel和glibc-devel.i686来解决
2. 64位系统下汇编32位的汇编程序
1). 64位汇编和32位汇编不同
汇编语言64位和32位是很不一样的,这里提供一份Intel官方的对64位的汇编简单介绍的pdf文档下载: 。虽然该文档按照微软的MASM的格式来说明的,但是还是可以得到一些我们需要的信息,从该文档中可以知道64位的寄存器已经和32位的不一样了,比如64位寄存器是rax,rbx等,低32位的才是使用eax,ebx。
对于系统调用,64位系统和32位系统大大不一样了,比如sys_write的系统调用,32位系统和64位系统分别如下:
32位的sys_write(stdout, str, length)的汇编调用
32位系统的sys_write(stdout, str, length)的汇编调用# sys_write(stdout, str, length)的汇编调用
movl $4, %eax
movl $stdout,
movl $str, %ecx
movl $length, %edx
64位的sys_write(stdout, str, length)的汇编调用
64位系统的sys_write(stdout, str, length)的汇编调用# 64位的sys_write(stdout, str, length)的汇编调用
movq $stdout, %rdi
movq $str, %rsi
movq $length, %rdx
虽然出于兼容性,32位系统的调用仍然可以在64位系统上运行,但两者已经大大不一样了。本文不是论述如何写64位汇编语言的,而是为了解决32位的汇编代码可以在64位环境下运行。
2). 64位系统下用as和ld汇编32位的汇编程序
那么怎样在64位系统中汇编32位的汇编程序呢?以以下例子cpuid2.s为例,代码为:
cpuid2.s# cpuid2.s file
.section .data
.asciz "CPUID is '%s'\n"
.section .bss
.lcomm buffer, 12
.section .text
.globl _start
movl $0, %eax
movl $buffer, %edi
movl %ebx, (%edi)
movl %edx, 4(%edi)
movl %ecx, 8(%edi)
pushl $buffer
pushl $output
call printf
addl $8, %esp
这个代码的具体实现,后续的章节会介绍。目前只知道是用于输出CPU厂商ID字符串的就行了。
在64位系统下,如果按照书中所述的那样as和ld,会产生错误,如下图:
说是push操作无效。
如果不修改源代码为64位的汇编,要解决这个问题,就需要命令64位系统按照32位的去汇编,as参数是--32, ld参数是-m elf_i386。如下图:
file cpuid2可以看到确实是32位的文件,而且执行也没有问题。这里要特别对ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o cpuid2 -L/lib -lc cpuid2.o这行命令进行说明。
-m elf_i386:表示按照elf_i386的模块进行连接,即32位的。
-lc: 因为程序中调用了标准的C库函数printf和exit,因此需要连接C动态库libc.so,所以需要参数-lc来指定连接的库文件,一般而言libxxx.so采用-lxxx的参数。
-L/lib:博主的系统有多个libc.so,包括64位的,32位的,arm结构的,如下图所示,能搜出很多个libc.so。
而/lib/libc.so才是32位x86系统所需要的动态库,所以使用-L/lib来指定库文件的路径,那么-L/lib &lc就指定了连接的是/lib/libc.so。
-dynamic-linker /lib/ld-linux.so.2:用于运行时动态加载libc.so动态库的。否则执行生成的可执行文件时会出错。
3). 64位系统下用gcc汇编32位的汇编程序
还是以上面的cpuid2.s为例,使用gcc -m32的参数进行汇编成32位的系统文件,特别的,这里由于没有main函数,而是用_start做入口点,因此需要使用参数 &nostdlib,如下图:
对gcc -nostdlib -m32 -o cpuid2 cpuid2.s -L/lib -lc进行说明。
-m32:按照32位的编译。
-nostdlib:如果没有这个参数,gcc会连接gnu库的函数,该函数会以_start为进入点,执行一段程序后,跳到main执行,而这个汇编源程序中用_start做进入点,而且没有main,因此,没有这个参数的话,会提示没有main定义以及重复定义_start的错误。加了这个参数后,则不会去连接gnu函数。
综上所述,64位系统下汇编32位汇编程序的做法是:
as --32 &o output_file.o input_file.s
ld &m elf_i386 &dynamic-linker /lib/ld-linux.so.2 &o output_file &L/path &llibname input_file.s
gcc &m32 &nostdlib &o output_file &L/path &llibname input_file.s
阅读(...) 评论()《汇编语言程序设计》(李浪)【摘要_书评_试读】- 蔚蓝网
共有图书2942335种
该分类热销推荐
您的浏览历史
顾客评分:
已有0人评论
字数:暂无&&&&&
页数:250&&&&&
开本:16开&&&&&
包装:平装
*特价书售完后恢复原价
特价书是出版社处理的库存书,大部分与新书无异,约10%的图书7-9成新,不影响阅读,如无缺页破损,售出不退货。
本书内容充实、重点突出,所选例题具有较强的代表性。
《汇编语言程序设计》以CPU为基础,由浅入深地介绍了汇编语言程序设计相关知识。全书共8章,主要内容包括汇编语言基础知识debug常用命令及用法举例和指令系统及汇编语言程序设计相关知识。本书内容充实、重点突出,所选例题具有较强的代表性。每章都附有相关的习题和上机练习,不同专业可根据需要选用。
第一章 汇编语言基础知识1.1 数据表示与运算1.2 计算机语言基本概念1.3 80x86CPU的编程结构1.4 80x86存储器组织结构习题1第二章 DEBUG常用命令的功能及使用举例2.1 DEBUG的主要用途及命令集2.2 DEBUG的主要命令功能与格式2.3 DEBUG使用举例2.4 使用DEBUG调试和运行可执行文件习题2第三章 80x86寻址方式与指令系统3.1 操作数类型3.2 寻址方式3.3 80x86的指令系统实验 掌握操作数的各种寻址方式习题3第四章 汇编语言程序格式4.1 汇编程序功能4.2 汇编程序语句格式4.3 伪操作4.4 汇编语言程序的上机过程实验 汇编语言程序格式及上机过程习题4第五章 汇编语言程序设计5.1 顺序结构5.2 分支结构5.3 循环结构5.4 子程序实验一 顺序程序编写与调试实验二 分支程序实验三 循环程序与子程序习题5第六章 高级汇编语言技术6.1 宏汇编6.2 重复汇编6.3 条件汇编6.4 汇编语言与其他高级语言的嵌入实验 高级汇编技术的使用习题6第七章 DOS中断和BIOS中断7.1 键盘I/O7.2 显示器I/O7.3 打印机I/O7.4 串行通信口I/O习题七第八章 输入/输出程序设计8.1 工作原理8.2 数据的输入/输出方式8.3 输入/输出应用实例习题8实验 有关输入/输出的功能调用附录1 中断向量地址一览附录2 DOS系统功能调用(INT 21H)附录3 BIOS系统功能调用附录4 部分习题参考答案参考文献
0人参与评分
很好(5星,4星):
一般(3星,2星):
不推荐(1星):&&&
写购物评价,赢购物积分,可换购物券!好书不要私藏哦,分享给别人吧!
温馨提示:由于每位咨询者提问时间及蔚蓝网促销等不同原因,以下回复仅对提问者3天内有效,其他网友仅供参考!
1件商品成功放入购物车
购物车共件商品,商品金额合计¥97.10
购物车中已有该商品
非常报歉,本商品没有库存暂时无法购买,如果您仍需要该图书
请输入邮箱做缺货登记,到货后我们会给您发邮件通知。
非常抱歉,您购买的数量超过库存,当前最多可买303件,请您修改。}

我要回帖

更多关于 汇编语言程序设计实验 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信