一:填空
1. AX又被称为(累加)器。
2. PF=1表示(低八位1的个数)为偶数。
3. *** 作数直接存放在指令中,紧跟在 *** 作码之后,他作为指令的一部分存放在代码段里,这种 *** 作数称为(立即数)。
4. 62A0H+9D60H=(10000)H
5. 标号和变量都有三种属性:(1、段属性 2、偏移属性 3、类型属性)。
6. 在另一个模块中定义而要在本模块中使用的符号必须使用(段寻址)伪 *** 作。(这题不肯定)
7. 逻辑运算是按(位) *** 作。
8. 循环程序通常由(初始化、循环工作与控制、循环结束的处理部分)三部分构成。
9. 129=(100000001)B
10. 机器数为88H,带符号十进制数(-120) 解题过程:88H即10001000B 第一个1表示是负数,而机器中的数都是以补码表示,补码又是原码变反加一,倒推一下,所以对应的正数是01111000,即120,所以~~
11. 将高级语言源程序翻译成机器语言程序的系统程序是(目标程序)。
12. (BP)称为基址指针寄存器。
13. 标识运算结果正负的标志是SF。SF=(1)时结果为正。
14. 8086实模式下一个段的大小可达(64K)B
15. 8086中可用于寄存器间接寻址的四个寄存器是(SP、BP、SI、DI)。
16. 在移位指令中,若移位次数大于1,就可将移位次数置于(CL寄存器)中。
17. 宏由(MACRO、ENDM)这一对伪指令来定义。
18. 访问堆栈的指令(如PUSH)只能使用(SS--堆栈段)作为段寄存器。
19. 指令CLD用于清除方向标志而(STD)指令使方向标志置1。
二。简答
根据以下要求,分别写出相应的汇编语言指令或指令序列。
1.把AX寄存器和BX寄存器的内容相减,结果存入AX中。
SBB AX,BX
2.将AX的内容逻辑左移5位。
MOV CL,5
SHL CL
3.将AX的内容,减去0520H和上次运算的借位。
SBB AX,0520H
4.将变量名TABLE的段地址送AX。
MOV AX,SEG TABLE
5.将DI的高四位置为0。
AND DI,0FH
6.输出一个字节到61H号端口。
OUT 61H,AL
7.将SI和DI的内容互换。
XCHG SI,DI
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
寄存器:我想了解多一些有关寄存器的知识,汇编编程时用的,请给我推荐一些书籍好么?汇编书里的太有限了,而且很多硬件的寄存器都没有提到.
书也行,最好是书.网站也可以.我不常上网的因为.
解析:
寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志(
OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.
DF: 方向标志DF位用来决定在串 *** 作指令执行时有关指针寄存器发生调整的方向。
IF: 中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:
(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;
(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
TF: 状态控制标志位是用来控制CPU *** 作的,它们要通过专门的指令才能使之发生改变
SF: 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
AF: 下列情况下,辅助进位标志AF的值被置为1,否则其值为0:
(1)、在字 *** 作时,发生低字节向高字节进位或借位时;
(2)、在字节 *** 作时,发生低4位向高4位进位或借位时。
PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。
CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。)
以上是8086寄存器的整体概况, 自80386开始,PC进入
32bit时代,其寻址方式,寄存器大小, 功能等都发生了变化, 要想学习这方面知识请参考相应资料.
关于寄存器就写这么多了,学习汇编和学习别的语言一样
要多想,多练,多看, 这样才会有提高.
下面是一些汇编书籍和网站, 对你学习会有帮助的.
网站:
x86a *** / x86汇编小站
aogosoft/ Aogo汇编小站
211.90.225.98:22366/ 罗云彬的编程乐园
.codeof/articles/programming/ma *** /
里面有汇编学习资料.
书籍:
1. IBM-PC 汇编语言程序设计(2th)
2. <<80x86 IBM PC及兼容计算机(卷I和II) — 汇编语言、设计与接口技术>>这本书很牛, 建议入手
中文的汇编好书比较少,如果你英语不错的话,可以看看
下面这些(都很经典!!!):
01. <<Mastering Turbo Assembler>>
02. <<Using Assembly Language>>
04. <<Assembly Language Primer for the IBM PC/XT>>
05. <<Assembly Language from Square One>>
06. <<Assembly Language for the IBM PC>>
07. <<Assembly Language and Systems Programming for the IBM PC and Compatables>>
08. <<Assembler Inside &Out>>
09. <<The Zen of Assembly>>
10. <<IBM Microputers: A Programmer's Handbook>>
11. <<Programmer's Problem Solver for the IBM PC, XT, and AT>>
12. <<IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING>>
13. <<80386: A Programming and Design Handbook>>, 2nd Ed
14. <<80486 Programming>>
15. <<Master Class Assembly Language>>
16. <<Programmer's Guide to PC &PS/2 Video Systems>>
17. <<Power Graphics Programming>>
18. <<Programmers Guide to the EGA and VGA cards>>, 3rd Ed.
19. <<AdvancEd Programmers Guide to the EGA/VGA>>
20. <<UndocumentEd DOS>>
21. <<DOS Programmer's Reference>>
22. <<386SX Microprocessor Programmer's Reference Manual>>
23. <<i486 Microprocessor Programmer's Reference Manual>>
24. <<The Programmer's PC Sourcebook>>
25. <<System BIOS for IBM PCs, Compatables, and EISA Computers>>, 2nd Ed.
26. <<PC Magazine Programmers Technical Reference: The Processor and Coprocessor>>
27. <<Mastering Serial Communications>>
28. <<DOS Programmer's Reference>>, 2nd Ed.
29. <<MS-DOS Programmer's Reference>>
最后祝你学习愉快
汇编语言那本书比较好?你好!
1、入门级《汇编语言》,推荐清华大学出版社王爽的《汇编语言》,很简单,很好入门。书中内容的编排有一定连贯性,要用到哪部分知识就介绍哪部分知识。其它书籍不适合入门的原因是一开始就将所有的寄存器、寻址方式列举出来,记忆已经相当困难,何况是活用?所以还没有体会到编程的快乐,就被推进了无尽的苦难中!
2、如果需要学到一定的深度,清华大学出版社的《80x86汇编语言程序设计》(作者不详)《IBM-PC 汇编语言》是比较好的教材(沈美明,温冬婵著)。这些教材我全部都读过,基本上是按照由浅入深的顺序。
需要说明的:汇编语言在当前高级语言的发展环境下,用途范围越来越狭窄,因为面向对象编程思想逐步取代过程语言设计,可以说汇编语言仅在电子产品的底层能够发挥其长处。但是可以借助汇编语言了解计算机的工作原理,为高级语言打下坚实的基础
希望能够帮到你!
大家认为最好的汇编语言入门教材是哪本
最好就是滴水三期的汇编视屏,我就是看它入门的,最关键是免费,
这3本书我都阅读过,最后还是我推荐的视频让我入得门,真心少走弯路
学习汇编语言选哪本书好?
入门级《汇编语言》,推荐清华大学出版社王爽的《汇编语言》,很简单,很好入门。书中内容的编排有一定连贯性,要用到哪部分知识就介绍哪部分知识。其它书籍不适合入门的原因是一开始就将所有的寄存器、寻址方式列举出来,记忆已经相当困难,何况是活用?所以还没有体会到编程的快乐,就被推进了无尽的苦难中!
如果需要学到一定的深度,清华大学出版社的《80x86汇编语言程序设计》(作者不详)《IBM-PC 汇编语言》是比较好的教材(沈美明,温冬婵著)。这些教材我全部都读过,基本上是按照由浅入深的顺序。
需要说明的是,汇编语言在当前高级语言的发展环境下,用途范围越来越狭窄,因为面向对象编程思想逐步取代过程语言设计,可以说汇编语言仅在电子产品的憨层能够发挥其长处。但是可以借助汇编语言了解计算机的工作原理,为高级语言打下坚实的基础。
了解汇编语言看什么书比较好
王爽老师的汇编语言通俗易懂,比较好入门。我就是看的这本书,挺不错的
初学c语言,推荐几本书看一下,要不要买一本王爽的汇编语言呢?
初学,建议你就下载视频教程。建议孙鑫老师的
对有一定基础了买书才看得懂。。
汇编也是建议有基础了。然后再看。不然只会把自己搞乱的。
打字不容易,感觉ok就给个好评采纳吧,谢谢。。。。。
看完王爽的《汇编语言第三版》,之后该看哪本书?
参考以前问题:
zhidao.baidu/question/292589535
包括那些没有采纳的答案,都很有见地。
学习汇编语言的入门书籍有哪些啊
大多时候,一些初学者不知道应该读什么书入门,有一定基础的开发者不知道如何进阶。本文总结了一个C++优秀书籍清单,希望能够为你带来一定的帮助。因为多读一些优秀的书籍,对于开发者稳固编程基础、提高编程技能有很大帮助,这些书大多数都有中文版,并且可以很容易在网上找到。
阶段1
《Essential C++》
这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。
《C++ Primer》
本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书可以帮助你编写实用的程序,而无需首先精通每个语言细节。对于中高级程序员,本书也是不可或缺的参考书。
阶段2
《Effective C++》和《More effective C++》
作者是Scott Meyers.你应该熟读它们,并清楚地理解每个项目。该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
《Exceptional C++(C++编程剖析)》和《More exceptional C++》
这两本书中都包含了40个C++编程问题,这些问题会让你磨练自己的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程中保持良好的风格,从而使编写的C++软件更健壮、更高效。
《Thinking in C++(C++编程思想)》
C++ 领域权威著作,介绍了C++实用的编程技术和最佳的实践方法。
阶段3
《Inside the C++ object model(深度探索C++对象模型)》
本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。
《The design and evolution of C++(C++语言的设计与演化)》
本书作者也是C++语言的设计者Bjarne Stroustrup,作者在书中综合性地介绍了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景,既没有忽略关键性的详情,又没有过多地陷入技术细节。
阶段4
《The C++ standard library(C++标准程序库)》
这是标准模板库字典,你可以在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。
《Effective STL》
这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。作者对书中的50个指导方针都作了详尽的分析,并配以示例。通过这些规则,C++开发者可以最大限度地使用STL.
《Generic programming and the STL(泛型编程与STL)》
本书阐述......
学汇编哪些书比较好
呵呵 好书多呀!入门: 王爽《汇编语言》(推荐)保护模式: 周明德《保护方式下的80386及其编》 杨季文《80X86汇编语言程序设计教程》Win32编程: 罗云彬《Windows环境下32位汇编语言程序设计》(推荐) iczelion《Win32汇编教程》 (美)欧文《Intel 汇编语言程序设计(第五版)》 反正我呀,就是看了王爽《汇编语言》和罗云彬《Windows环境下32位汇编语言程序设计》而已,其他的随便看了,或者没看完,觉得汇编估计也就这两本经典了!《保护方式下的80386及其编》已经绝种,我是在学校图书馆找到的,不过电子书网上有下载,它可以当做指令大全来看!!
想学汇编语言。请问大学本科是用哪本教材的。
先学习一门语言,比如c,VB,再学汇编,汇编教材入门有王爽汇编,清华出版的汇编语言程序设计
Intel汇编语言程序设计 和 王爽的汇编语言 那本比较好?
话说怎么这么巧,这三本我都看过。。。
王爽的简单,容易明白,容易入门,没法精通。
Intel汇编语言,内容详细,缺点就是太厚了,你可以和王爽的比下,快3本了。
所以他写的比较全面。
windows32,这个我曾经是作为后续才看到,因为它是WIN32汇编,不是X8086汇编了,
他使用的是WINDOWS界面编程。win32汇编和8086汇编类似于MFC和C的的关系一样。
调用的都是API,就不是单纯的MOV ADD JMP了。
需要学习WIN32汇编,最好是在8086汇编的基础上去学习,就像是从简单的学起,。
下面是我的建议:
如果你只想了解,开拓视野。建议去学王爽的,简单,容易理解,加个汇编交流群,百度一个小甲鱼汇编视频,一半个月就自学会了。
如果你想玩黑客,破解。。。那最好去学习,intel的。如果你连这都看不明白,那么想深入的搞清楚汇编语言,一个字,难。
如果你是学计算机的,想在windows下进行编程,并且想最个有界面的,可以先学,王爽,然后学习win32.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)