自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 汇编语言--------王爽第13章答案

答案检测点13.1检测点13.2检测点13.1(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?因为转移位移是由bx存放的,而bx是16位数,最大可以转移的位移是215-1.(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。应用举例:在屏幕的第12行,显示data段中以0结尾的字符串assume cs:codedata segment db 'conversation',0dat

2021-04-17 20:34:41 315

原创 汇编语言-------王爽第9章答案

答案检测点9.1检测点9.2检测点 9.3实验8 分析一个奇怪的程序检测点9.1程序如下:assume cs:codedata segment dd 3 dup (0)data endscode segment start:mov ax,data mov ds,ax mov bx,0 jmp word ptr [bx+1]code endsend start若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?

2021-04-15 08:08:18 853

原创 汇编语言---------王爽第8章答案

答案实验七实验七assume cs:codesg,ds:datadata segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;以上是表示21年的21个字符串 dd 16,22,382,1356,2390,8000,

2021-04-14 15:52:45 240

原创 汇编语言----------王爽第11章答案

答案检测点11.1检测点11.2检测点11.3检测点11.4检测点11.1写出下面每条指令执行后,ZF、PF、SF等标志位的值sub al,al   ZF=1  PF=1  SF=0mov al,1   ZF=1  PF=1  SF=0push ax   ZF=1  PF=1  SF=0p

2021-04-13 17:39:40 544

原创 汇编语言----------王爽第7章答案

实验6 7.9中的程序assume cs:codesg,ds:datasg,ss:stacksgdatasg segment db '1. display ' db '2. brows ' db '3. replace ' db '4. modify 'datasg endsstacksg segment dw 0,0,0,0,0,0,0,0stacksg en

2021-04-08 21:23:23 137

原创 汇编语言-----王爽第6章课后答案

实验五、调试具有多个段的程序(1)将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0987h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segment dw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,stack mov ss,ax m

2021-04-07 15:53:34 415

原创 汇编语言--------王爽第5章课后答案

答案实验4 [BX]和loop的使用(1)编程,向内存0:2000:23F依次传送数据063(3FH)。assume cs:codecode segment mov ax,0 mov ds ,ax mov al,0 mov bx,200h mov cx,64 s: mov ds:[bx],al inc bx inc al loop s mov ax,4c00H int 21hcode endsend(2)编程向内存0:2000:23F依次传送数据

2021-04-06 16:23:35 281

原创 汇编语言--------王爽第3章课后答案

答案检测点3.1(1)在Debug中,用“d 0:0 1f”查看内存,结果如下。0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行后相关寄存器中的值。mov ax 1mov ds,axmov ax,[0000]    &

2021-04-05 17:22:12 1540 1

原创 汇编语言--------王爽第2章答案

课后答案检测点2.1检测点2.3检测点2.1mov ax,62627 AX = F4A3Hmov ah, 31H AX = 31A3Hmov al,23H AX= 3123Hadd ax,ax AX = 6246Hmov bx,826CH BX = 826CHmov cx,ax CX= 6246Hmov ax,bx AX= 826CHadd ax,bx AX = 04D8Hmov al,bh AX= 0482Hmov ah,bl AX = 6C82Hadd ah,ah AX=D

2021-04-05 10:20:42 189

原创 汇编语言----------王爽答案第一章

答案检测点1.1检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线宽度为:(13)(2)1KB的存储器有(1024个存储单元)。存储单元的编号从(0)到(1023)(3)1KB的存储器可以存储(1024*8)个bit,(1024)个Byte(4)1GB、1MB、1KB分别是(230,220,210)Byte(5)8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根、则它们的寻址能力分别为:(26)KB、(1)MB、(24)MB、(22)GB

2021-04-04 22:29:11 157

原创 汇编语言----------王爽第12章

内中断内中断的产生中断处理程序中断向量表中断过程除法错误中断的处理任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来的或内部产生一种特殊信息,并且可以立即对所接受到的信息进行处理。这种特殊的信息,我们可以称其为:中断信息。中断的意思是指,CPU不再接着刚执行完的指令向下执行,而是转去处理这个特殊信息。内中断的产生对8086CPU,当CPU内部有下面的情况发生的时候,将产生相应的中断信息。除法错误,比如,执行div指令产生的除法溢出;

2021-03-25 21:49:07 179

原创 汇编语言----------王爽第11章

标志寄存器ZF标志PF标志SF标志CF标志OF标志adc指令sbb指令cmp指令CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作用。用来存储相关的指令的某些执行结构用来为CPU执行相关指令提供行为依据用来控制CPU的相关工作方式这种特殊的寄存器在8086CPU中,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。本章中的标志寄存器简称为flag。flag寄存器的16位,每一位都有专门的含义,记录特

2021-03-25 08:32:15 596

原创 汇编语言---------王爽第10章

CALL和RET指令ret和retfcall指令依据位移进行转移的call指令转移的目的地址在指令中的call指令转移地址在寄存器中的call指令转移地址在内存中的call指令call 和 ret的配合使用call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移。retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。CPU执行ret指令时,相当于进行下面的操作:po

2021-03-23 16:46:37 126

原创 汇编语言-----------王爽第9章

转移指令的原理操作符jmp指令依据位移进行转移的jmp指令转移的目的地址在指令中的jmp指令转移地址在寄存器中的jmp指令转移地址在内存中的jmp指令jcxz指令可以修改IP,或同时修改CS和IP的指令统称为转移指令。概况的来说转移指令就是可以让CPU直行内存处某处指代码的指令。8086CPU的转移行为有以下几类。只修改IP时,称为段内转移,比如 jmp ax。同时修改CS和IP,被称为段间转移,比如jmp 1000:0。由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移。短转移

2021-03-23 15:57:36 135

原创 汇编语言--------王爽第8章

数据处理的两个基本问题bx、si、di和bp机器指令处理的数据在什么地方立即数寄存器段地址(SA)和偏移地址(EA)寻址方式本章是对前面的所有内容是具有总结性的,我们知道计算机是进行数据处理的、运算的机器,那么有两个基本的问题就包含其中:处理的数据在什么地方?要处理的数据有多长。bx、si、di和bp在8086CPU中,只有这4个寄存器可以用在‘[…]’中来进行内存单元的寻址。在[…]中,这4个寄存器只能单独出现,或者只能两两组合出现,不能bx和bp同时出现。只要在[…]中使用寄存器bp

2021-03-22 17:08:47 359

原创 汇编语言---------王爽第6章

包含多个段的程序在操作系统的环境中,哈法通过操作系统取得的空间都是安全的。程序取得所需要空间的方法有两种,一是在加载程序的时候为程序分配,二是程序在执行的过程中向系统申请。我们可以用 dw xxxxxh来申请内存空间,dw的含义是定义字型数据。dw即"define word"的意思。需要注意的是如果我们直接用dw来申请内存空间可能会导致直接运行汇编程序时出错,因为数据和指令本质上都是二进制数据罢了。所以我们需要在源程序中指明程序的入口所在,具体做法就是在指令开始的语句前加个start标记,然后再程序结尾用

2021-03-21 13:19:20 296

原创 汇编语言---------王爽第七章

更灵活的定位内存地址的方法and 和 or指令and指令or指令关于ASCII码以字符形式给出的数据[BX+IDATA】and 和 or指令and指令and指令:逻辑与指令,按位进行与运算。两个位多是1才为1,其他情况都为0。比如 and al,10111111B指令将al的第六位设为0其位不变。or指令or指令:逻辑或指令,按位或指令。两个位置多是0才为0,其他情况多是1。比如 or al 10000000将al的第八位设为1,其他位保持不变。关于ASCII码在计算机中所有的信息都是二进制

2021-03-21 13:09:24 459

原创 汇编语言--------王爽第五章

[BX]和loop指令[BX]LOOP指令特别注意 Debug和汇编编译器masm对指令的不同处理段前缀一段安全的空间[BX][BX]和[0]有些类似[0]表示偏移地址为0段地址在DS寄存器中,而[BX]是偏移地址为BX寄存器中的内容,段地址也是在DS寄存器中。为了下文描述方便我们定义一个符号()表示一个寄存器或一个内存单元中的内容,比如(ax)表示寄存器ax中的内容。inc 寄存器这条指令是让寄存器中的内容加1,比如 inc bx就是把bx寄存器中的内容+1。LOOP指令loop指令的格式是:l

2021-03-20 20:29:07 279

原创 汇编语言---------王爽第4章

一个源程序从写出到执行的过程一个源程序从写出到执行的过程分为三步:编写汇编源程序对源程序进行编译连接执行可执行文件中的程序在操作系统按照可执行文件中的描述信息,将可执行文件中的机器码和数据加载内存,并进行相关的初始化。比如设置CS:IP指向第一条要执行的指令。下面是一段简单的汇编语言源程序。assume cs:codesgcodesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax

2021-03-20 17:22:09 799

原创 汇编语言--------王爽第三章

寄存器----内存访问 内存中字的存储DS和[address]mov、add、sub指令栈栈顶超界的问题内存中字的存储在CPU中我们用16位存储器来存储一个字,一个字大小是两个字节的大小,为16位。但是内存单元是字节单元,所以一个字要用两个内存单元来存储。这个字的低位字节单元放在低地址单元,而高位字节单元放在高地址单元。我们将其地址为N的字单元简称为N地址字单元 。DS和[address]CPU要读取一个内存单元的时候,必须要知道该内存单元的物理地址。我们一般用段地址和偏移地址来标记内存单元。808

2021-03-19 20:47:18 135

原创 汇编语言--------王爽第二章

寄存器通用寄存器字在寄存器中的存储几条汇编指令几点需要注意的物理地址16位结构的CPU8086CPU给出物理地址的方法物理地址 = 段地址 * 16 +偏移地址的本质段寄存器CS和IPdebugR命令D命令E命令u命令t命令a命令CPU是由运算器,控制器,和各种寄存器组成的。CPU通过外部总线与主板上的设备产生联系,而CPU通过内部总线实现CPU内部各个期间之间的联系。简单的来说在CPU中:运算器进行信息处理寄存器用来储存各种信息控制器控制各种器件进行工作内部总线连接各种器件,在它们之间进行数

2021-03-18 21:47:25 243

原创 汇编语言-----王爽第一章

基础知识汇编语言的产生汇编语言的组成存储器指令和数据存储单元存储单元换算CPU对存储器的读写总线地址总线数据总线控制总线CPU的控制外部设备的方式各类存储器芯片汇编语言的产生早起的程序员们发现了使用机器语言带来的麻烦,机器语言是难于辨别和记忆,给整个产业带来了障碍,故此汇编语言产生了。汇编语言是机器指令便于记忆的书写格式。程序员用汇编语言写出源程序,再用汇编编译器将其编为机器码,由计算机最终执行。汇编语言的组成汇编语言发展至今,由一下三类指令组成。汇编指令:机器码的助记符,有对应的机器码。伪指

2021-03-15 22:29:49 327

原创 浅谈计算机中原码反码补码

浅谈计算机中原码反码补码原码正数负数反码正数负数补码正数负数小技巧求补码求反码快速求出补码表示的数原码正数正数中原码比较简单,直接将正数转换成二进制数,原码便是最高位为0其余位是该二进制数。位数不够时直接往前补0便可。比如42它的原码是如何计算出来的呢,如下图所示最后它的原码便是:0101010若要求它的16位原码如何表示直接往前补0即可如42的16位原码是0000000000101010。负数负数中原码和正数类似,但是复杂一点,先求出此负数绝对值的二进制数,然后在最高位写1其他位写上负数绝对值

2021-03-14 17:54:59 2995

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除