汇编语言第三版(王爽)9-1.1
- 格式:doc
- 大小:75.00 KB
- 文档页数:2
汇编语言答案检测点1.1(第8页)(1)13(2)1024,0,1023(3)8192,1024(4)2^30,2^20,2^10(5)64,1,16,4(6)1,1,2,2,4(7)512,256(8)二进制注意:1.第4题中的符号'^'指求幂运算(如:2^30指2的30次方)检测点2.1(第18页)----------------------(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(第23页)----------------------(1)00010H,1000FH(2)1001H,2000H第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001H或大于2000H时CPU都无法寻到。
检测点2.3(第33页)答:CPU修改了4次IP的值。
第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后第3次:读入jmp ax后第4次:执行完jmp ax后最后IP的值为0实验1查看CPU和内存,用机器指令和汇编指令编程(第33页)-----------------------------------------------------1.预备知识:Debug的使用<此部分略>2.实验任务(第43页)(1)<此部分略>(2)<此部分略>(3)通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。
汇编语言》-王爽-完美高清版-零基础汇编语言入门书籍PDF格式同时按ctrl+要下载的地址既可下载对应的视频下载地址:/file/f61cb107c8001第一章- 基础知识01下载地址:/file/f6806f45b8002第一章- 基础知识02下载地址:/file/f6ec42d4d3003第一章- 基础知识03下载地址:/file/f6deb05ec4004第一章-基础知识04下载地址:/file/f6e51f6838005第一章- 基础知识05下载地址:/file/f66edaf8d3006第二章- 寄存器(CPU工作原理)01下载地址:/file/f6d07e07b9007第二章- 寄存器(CPU工作原理)02下载地址:/file/f6d7f585a8008第二章- 寄存器(CPU工作原理)03下载地址:/file/f639d8b3cf009第二章- 寄存器(CPU工作原理)04下载地址:/file/f6dcadbde6010第二章- 寄存器(CPU工作原理)05下载地址:/file/f6ea3f01c1011第二章- 寄存器(CPU工作原理)06下载地址:/file/f65b96a06f012第二章- 寄存器(CPU工作原理)07下载地址:/file/f682da085a013第三章- 寄存器(内存访问)01下载地址:/file/f6486e698014第三章- 寄存器(内存访问)02下载地址:/file/f6b7491d9f015第三章- 寄存器(内存访问)03下载地址:/file/f622b7f9a7016第三章- 寄存器(内存访问)04下载地址:/file/f64e2424b9017第三章- 寄存器(内存访问)05下载地址:/file/f6e5132d4d018第三章- 寄存器(内存访问)06下载地址:/file/f655c10e86019第三章- 寄存器(内存访问)07下载地址:/file/f6b22e64e6020第四章- 第一个程序01下载地址:/file/f6812126a4021第四章- 第一个程序02下载地址:/file/f6523e625c022第四章- 第一个程序03下载地址:/file/f63e0ccb28023第五章- [BX]和loop指令01下载地址:/file/f611e07b8a#024第五章- [BX]和loop指令02下载地址:/file/f6e047bccc#025第五章- [BX]和loop指令03下载地址:/file/f6d348d781#026第五章- [BX]和loop指令04下载地址:/file/f6ada24153#027第五章- [BX]和loop指令05下载地址:/file/f64f97518b#028第五章- [BX]和loop指令06下载地址:/file/f6f9ba96f8#029第六章- 包含多个段的程序01下载地址:/file/f650e06f38#030第六章- 包含多个段的程序02下载地址:/file/f683ee5b2a#031第六章- 包含多个段的程序03下载地址:/file/f69009bfc2#032第七章- 更灵活定位内存地址的方法01下载地址:/file/f6ea427646#033第七章- 更灵活定位内存地址的方法02下载地址:/file/f6acdc6b7f#034第七章- 更灵活定位内存地址的方法03下载地址:/file/f6c85745d0#035第七章- 更灵活定位内存地址的方法04下载地址:/file/f61a26cf12#36第七章- 更灵活定位内存地址的方法05下载地址:/file/f631edf5c6#037第七章- 更灵活定位内存地址的方法06下载地址:/file/f6b0fa6fb8#038第八章- 数据处理的两个基本问题01下载地址:/file/f6f5fe8962#039第八章- 数据处理的两个基本问题02下载地址:/file/f6bf975e0#040第八章- 数据处理的两个基本问题03下载地址:/file/f6d522784c#041第八章- 数据处理的两个基本问题04下载地址:/file/f6b5ac9991# 042实验七寻址方式在结构化数据访问中的应用下载地址:/file/f62e80ced5#076第十七章_使用BIOS进行键盘输入和磁盘读写02/file/bhbgrnfz#077第十七章_使用BIOS进行键盘输入和磁盘读写03[url=/file/dnsl0kxp#[/sell]/file/dnsl0kxp#[/sell[/url]]。
汇编语⾔(王爽第三版)检测点这本书购于2015.11.30,我⼤概从2016.3⽉开始读,历时⼤概三个⽉,我们学校开《微机原理与汇编语⾔》这门课,不过让⼈感觉很不爽,课本⼀开始就丢给你⼀堆东西,意欲让你记住这⼀⼤堆东西,然后开始编程,我对编程语⾔的学习⽅⾯要求⽐较⾼,所以开始读这本王爽⽼师写的汇编语⾔,⽬前为⽌,这本书给我的感觉就是,你能学到很多底层的东西,尤其是像键盘的读写原理,屏幕的显⽰,特别是对内存的操作和管理,不像课本上给你⼀个中断让你就能显⽰字符之类的,它会⼀步⼀步教你怎么把要显⽰的东西写到显存⾥⾯,这本书显得⽐较浅显易懂,让⼈感觉不错,特别是读了这本书再去看那些难度较⾼的汇编代码及微机原理,效率会⾼很多,下⾯是我读这本书的过程中对书中检测点的解答,仅代表个⼈观点。
第⼀章检测点1.11) 13 (8kb = 8 * 1024 = 2^13) 2) 1024010233) 8*10241024 (1 byte = 8 bit,计算机以byte为存储单位)4) 1024^31024^210245) 2^612^42^2 (kb = 2^10 Mb = 2^20 Gb = 2^30)6) 112247) 512256 (8086的寄存器为16位寄存器,⼀次可以读取两个字节,80386为32位寄存器)8) ⼆进制第⼆章检测点2.11)AX = F4A3hAX = 31A3hAX = 3123hAX = 6246hBX = 826ChCX = 6246hAX = 826ChAX = 04D8hAX = 0482hAX = 6C82hAX = D882hAX = D888hAX = D810hAX = 6246h2)mov ax,2add ax,axadd ax,axadd ax,ax检测点2.21)00010h 1000fh(0001h+0000h 0001h+ffffh)2)1001h 2000h(偏移地址的范围为0000-ffff,内存单元=段地址*16+偏移地址,当偏移地址最⼩时,段地址最⼤,偏移地址最⼤时,段地址最⼩)检测点2.34次修改IP,最后IP为0第三章检测点3.11)mov ax,1mov ds,axmov ax,[1000] AX = 2662hmov bx,[1001] BX = E626hmov ax,bx AX = E626hmov ax,[0000] AX = 2662hmov bx,[0002] BX = D6E6hadd ax,bx AX = FD48hadd ax,[0004] AX = 2C14hmov ax,0 AX = 0000hmov al,[0002] AX = 00E6hmov bx,0 BX = 0000hmov bl,[000C] BX = 0026hadd al,bl AX = 000Ch2)CS = 2000h,IP = 0,DS = 1000hmov ax,6622h AX = 6622hjmp 0ff0:0100h CS = 0ff0 IP = 0100hmov ax,2000h AX = 2000hmov ds,ax DS = 2000hmov ax,[0008] AX = C389hmov ax,[0002] AX = EA66hmov ax,6622h AX = 6622h数据和程序表达上没有区别,只跟存储的地⽅有关,存在数据段中即为数据,存在程序段中就是程序检测点3.21)mov ax,2000hmov ss,axmov sp,10h2)mov ax,1000hmov ss,axmov sp,0第六章检测点6.11)mov cs:[bx],ax2)cs26或1ahpop cs:[bx]第九章检测点9.11)db 8 dup (0)2)offset startcs3)CS = 0006h IP = 00BE检测点9.2mov cl,[bx]mov ch,0jcxz okinc bx检测点9.3inc cx(因为loop s执⾏时是先将cx减⼀再与0⽐较)第⼗章检测点10.110000000检测点10.2ax = 3检测点10.3ax = 1006检测点10.4ax = 9(call ax时将IPpush到栈中,也就是push 3)检测点10.51)ax = 32)ax = 0001 bx = 0000第⼗⼀章检测点11.111011011011000001001000011000110010000100110111 1 0 1 11 0 0 0 01 0 0 0 00 1 1 0 1检测点11.31)jna s0jna s02)jb s0jb s0检测点11.4ax = 0871h检测点12.11)039D:00162)0000:[4N]0000:[4N+2]检测点13.1assume cs:code,ds:datadata segmentdb 'conversation',0data endscode segmentstart:mov ax,csmov ds,axmov si,offset showmov ax,0mov es,axmov di,200hmov cx,offset showend-offset showcldrep movsbmov ax,0mov es,axmov word ptr es:[7ch*4],200hmov word ptr es:[7ch*4+2],0mov ax,datamov ds,axmov si,0mov ax,0b800hmov es,axmov di,12*160s:cmp byte ptr [si],0je okmov al,[si]mov es:[di],almov al,2mov es:[di+1],alinc siadd di,2mov bx,offset s-offset okint 7chok:mov ax,4c00hint 21hshow:push bpmov bp,spadd [bp+2],bxpop bpiretshowend:nopcode endsend start检测点13.21)错误,不能向BIOS中写程序2)错误,19h中断在操作系统以前,⽽DOS由操作系统控制即在操作系统以后1)mov al,2out 70h,alin al,71h2)mov al,0out 71h,almov al,2in 70h,al检测点14.2在不考虑溢出的情况下:mov ax,__mov bx,axshl bx,1mov cl,3shl ax,cladd ax,bx第⼗五章检测点15.11)pushfcall dword ptr ds:[0]2)在中断向量表中设置新的int9中断⼊⼝地址的时候不让其发⽣中断,即climov word ptr es:[9*4],offset int9mov word ptr es:[9*4+2],cssti恢复中断向量表int9的源地址时同理:clipush ds:[0]pop es:[9*4]push ds:[2]pop es:[9*4+2]sti第⼗六章检测点16.1a[si]bb1检测点16.2mov ax,datamov es,ax第⼗七章检测点17.1IF = 1 DI(disable interupt)IF = 0 EI(enable interupt)当执⾏int16中断时是从缓冲区中读出字符,若缓冲区为空,则int16应该可以响应int9的中断,故IF不⼀定为1。
汇编语言王爽第三版检测点答案带目录在学习汇编语言的过程中,王爽老师的《汇编语言(第三版)》无疑是一本备受推崇的经典教材。
而对于学习者来说,检测点的答案能够帮助我们更好地巩固知识,查漏补缺。
接下来,我将为大家详细呈现这本教材中各个章节检测点的答案,并附上清晰的目录,方便大家查阅和学习。
第一章基础知识检测点 11(1)1 个 CPU 的寻址能力为 8KB,那么它的地址总线的宽度为。
答案:13 位。
因为 8KB = 8×1024 = 2^13B,所以地址总线的宽度为 13 位。
检测点 12(1)8086 CPU 有根数据总线。
答案:16 根。
(2)8086 CPU 有根地址总线。
答案:20 根。
检测点 13(1)内存地址空间的大小受的位数决定。
答案:地址总线。
(2)8086 CPU 的地址总线宽度为 20 位,其可以寻址的内存空间为。
答案:1MB。
因为 2^20 = 1048576B = 1MB。
第二章寄存器检测点 21(1)写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX = 62627mov ah,31H AH = 31H,AX = 31627mov al,23H AL = 23H,AX = 3123H检测点 22(1)给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为到。
答案:00010H 到 1000FH。
(2)有一数据存放在内存 20000H 单元中,现给定段地址为 SA,若想用偏移地址寻到此单元。
则 SA 应满足的条件是:最小为,最大为。
答案:最小为 1001H,最大为 2000H。
第三章内存访问检测点 31(1)下面的程序实现依次用内存 0:0~0:15 单元中的内容改写程序中的数据。
完成程序。
assume cs:codesgcodesg segmentdw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987Hstart: mov ax,0mov ds,axmov bx,0mov cx,8s: mov ax,bxmov bx+16,axadd bx,2loop smov ax,4c00hint 21hcodesg endsend start检测点 32(1)下面的程序将“Mov ax,4c00h ”之前的指令复制到内存 0:200 处。
汇编语言第3版答案【篇一:汇编语言习题答案 (3)】一、选择题(四选一)1.表示一条处理器指令所在存储单元的符号地址是a 变量b 常量c 标号d 偏移量2.汇编语言中的变量有多种类型属性,但错误的类型是a 字节型byteb 字符型charc 字型wordd 双字型dword3.执行mov bx,seg var指令,bx得到变量var的。
a 物理地址b 段地址c 偏移地址d 内容4.masm语句中,采用a 逗号b 分号c 冒号d 空格5.欲设定从偏移地址100h开始安排程序,可使用a org 100hb start=100hc start db 100hd start equ 100h6.与“mov bx,offset var”指令等效的指令是a mov bx,varb 1ds bx,varc les bx,vard 1ea bx,var.7.下条语句buf db l0 dup(3 dup(?,10),3,10)汇编后,变量buf占有的存储单元字节数是 b 。
a 100b 80c 40d 208.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是。
a 0b 0ffffhc 1d 0ffh9.要求将a、b两个字符的ascii码41h和42h顺序存放在连续两个字节存储单元中,可选用的语句是 a 。
a db`ab'b dw `ab'c db 0abhd dw 0abh10.在汇编语言程序中,对end语句叙述正确的是a end语句是一可执行语句b end语句表示程序执行到此结束c end语句表示源程序到此结束d end语句在汇编后要产生机器码11.下面的数据传送指令中,错误的操作是a mov ss:[bx+di],byte ptr 10hb mov dx,l000hc mov word ptr[bx],1000hd mov ds,2000h12.下面指令执行后,变量dab中的内容是daw dw 2a05hdab db 0fah?mov al,byte ptr dawsub dab,ala 0dahb 0fahc 0f5hd 0d0h13.根据下面的语句序列,ax寄存器的内容是。
汇编语言学习笔记《汇编语言》--王爽前言学习汇编目的:充分获得底层编程体验;深刻理解机器运行程序的机理。
原则:没有通过监测点不要向下学习;没有完成当前实验不要向下学习。
第一章基础知识有三类指令组成汇编语言:汇编指令;伪指令;其他符号。
8bit = 1byte = 一个存储单元有n根地址线,则可以寻址2的n次方个内存单元。
1.1节--1.10节小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种cpu都有自己的汇编指令集。
(3)cpu可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以存储8个bit,即八位二进制数。
(7)每一个cpu芯片都有许多管脚,这些管脚和总线相连。
也可以说,这些管脚引出总线。
一个cpu可以引出的三种总线的宽度标志了这个cpu不同方面的性能。
地址总线的宽度决定了cpu的寻址能力;数据总线的宽度决定了cpu与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了cpu对系统中其他器件的控制能力。
监测点:1KB的存储器有1024个存储单元?存储单元的编号从0到1023.内存地址空间:最终运行程序的是cpu,我们用汇编编程时,必须要从cpu的角度思考问题。
对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受cpu寻址能力的限制。
这个逻辑存储器即是我们所说的内存地址空间。
第二章寄存器(cpu的工作原理)mov ax, 2add ax, axadd ax, axadd ax, ax(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送人一个称为地址加法器的部件;(3)地址加法器将两个16位地址合成为一个20位的物理地址;(4)地址加法器通过内部总线将20位物理地址送人输入输出控制电路;(5)输入输出控制电路将20位物理地址送上地址总线;(6)20位物理地址被地址总线传送到存储器;段地址*16+偏移地址= 物理地址的本质含义内存并没有分段,段的划分来自cpu。
汇编语言王爽第三版课后答案【篇一:汇编语言王爽第二版课后答案】lass=txt> ---------------------(1) 13(2) 1024,0,1023 (3) 8192,1024⑷ 2八30,2八20,2八10 (5) 64,1,16,4 (6) 1,1,2,2,4 ⑺ 512,256 (8) 二进制1.第4题中的符号八指求幂运算(如: 2A30指2的30次方)第二章寄存器(cpu 工作原理)检测点 2.1(第18 页) ---------------------( 1 )写出每条汇编指令执行后相关寄存器中的值。
第一空:f4a3h 第二空:31a3h 第三空:3123h 第四空:6246h 第五空:826ch 第六空:6246h第七空:826ch 第八空:04d8h 第九空:0482h第十空:6c82h 第十一空:d882h 第十二空:d888h 第十三空:d810h 第十四空:6246h(2) 只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。
解答如下:mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2(第23 页) ---------------------------------(1)00010h,1000fh (2)1001h,2000h第 2 题说明:因为段的起始地址要为16 的倍数。
所以当段地址小于1001h 或大于2000h 时cpu 都无法寻到。
检测点 2.3(第33 页) ---------------------答:cpu 修改了 4 次ip 的值。
情况如下:第 1 次:执行完mov ax,bx 后第 2 次:执行完sub ax,ax 后第 3 次:读入jmp ax 后第 4 次:执行完jmp ax 后最后ip 的值为0 实验1 查看cpu 和内存,用机器指令和汇编指令编程(第33 页)1 .预备知识:debug 的使用此部分略2. 实验任务(第43 页) (1)此部分略(2)此部分略(3)通过debug 中的 d 命令查看到主板的生产日期[以月、日、年,分隔符为/ 的格式] 存储在内存ffff:0005~ffff:000c(共8 个字节单元中)处。
汇编语⾔-王爽前⾔学习汇编的两个最根本的⽬的:充分获得底层编程的体验,深刻理解机器运⾏程序的机理。
任何不以循序渐进的⽅式进⾏的学习,都将出现盲⽬探索和不成系统的情况,最终学习到的也⼤都是相对零散的知识,并不能建⽴起⼀个系统的知识结构。
⾮循序渐进的学习,也达不到循序渐进学习所能达到的深度,因为后者是步步深⼊的,每⼀步都以前⼀步为基础必须遵守的原则:①没有通过监测点不要向下学习②没有完成当前的实验不要向下学习③每⼀个实验都是后续内容的基础,实验的任务必须独⽴完成④本书的教学重⼼是:通过学习关键指令来深⼊理解机器⼯作的基本原理,培养底层编程意识和思想我们必须通过⼀定的编程实践,体验⼀个裸机的环境,在⼀个没有操作系统的环境中直接对硬件编程第1章基础知识汇编语⾔是直接在硬件之上⼯作的编程语⾔机器语⾔/机器指令集是机器指令的集合寄存器是CPU中可以存储数据的器件编译器能够将汇编指令转换成机器指令的翻译程序汇编语⾔由以下3类指令组成:1.汇编指令:机器码的助记符,由对应的机器码(核⼼) <汇编指令是机器指令便于记忆的书写格式>2.伪指令:没有对应的机器码,由编译器执⾏,计算机并不执⾏3.其他符号:+ - * /要想让⼀个CPU⼯作,就必须向它提供指令和数据。
指令和数据在存储器中存放,也就是我们平时所说的内存CPU要从内存中读数据,⾸先要指定存储单元的地址,CPU在读写数据时还要指明。
它要对哪个器件进⾏哪种操作所以CPU要想进⾏数据的读写,必须和外部器件进⾏下⾯3类信息的交互->存储单元的地址(地址信息)器件的选择,读或写的命令(控制信息)读或写的数据(数据信息)指令和数据没有任何区别,都是⼆进制信息。
CPU在⼯作的时候把有的信息看作数据,为同样的信息赋予了不同的意义1 Byte = 8 bit = 8个⼆进制位 = 8位⼆进制数据在计算机中专门有连接CPU和其他芯⽚的导线,通常称为总线,总线从逻辑上分为3类,地址总线、控制总线、数据总线(1)CPU通过地址线将地址信息3发出(2)CPU通过控制线发出内存读命令,选中存储器芯⽚并通知它将要从中读取数据(3)存储器将3号单元中的数据8通过数据线送⼊CPUCPU是通过地址总线来指定存储器单元的10根导线可以传送10位⼆进制数据。
汇编语言(王爽)Word版(1)第1章基础知识汇编语言是直接在硬件之上工作的编程语言,我们首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。
在本章中,我们对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。
当课程进行到需要补充新的基础知识(关于编程结构或其他的)的时候,再对相关的基础知识进行介绍和探讨。
我们的原则是,以后用到的知识,以后再说。
在汇编课程中我们不对硬件系统进行全面和深入的研究,这不在课程的范围之内。
关于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中进行。
汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。
1.1 机器语言说到汇编语言的产生,首先要讲一下机器语言。
机器语言是机器指令的集合。
机器指令展开来讲就是一台机器可以正确执行的命令。
电子计算机的机器指令是一列二进制数字。
计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。
上面所说的计算机指的是可以执行机器指令,进行运算的机器。
这是早期计算机的概念。
现在,在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。
这个芯片就是我们常说的CPU(Central Processing Unit,中央处理单元),CPU是一种微处理器。
以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。
每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。
所以每一种微处理器都有自己的机器指令集,也就是机器语言。
早期的程序设计均使用机器语言。
程序员们将用0、1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。
应用8086CPU完成运算s=768+12288-1280,机器码如下。
汇编语⾔笔记王爽教程汇编语⾔笔记王爽教程第⼀章基础知识1. 汇编指令是机器指令的助记符,同机器指令⼀⼀对应。
2. 每⼀种CPU都有⾃⼰的汇编指令集。
汇编语⾔发展⾄今,由以下三类指令组成:1汇编指令:机器码的助记符,有对应的机器码;2伪指令:没有对应的机器码,由编译器执⾏,计算机并不执⾏;3其他符号:如:+,--,*,/等,由编译器识别,没有对应的机器码。
3. CPU可以直接使⽤的信息在存储器中存放。
4. 在存储器中指令和数据没有任何区别,都是⼆进制信息。
5. 存储单元从零开始顺序编号。
6. ⼀个存储单元可以存储8个bit(⽤作单位写为“b”),即8位⼆进制数7. 1B=8b 1KB=1024b 1MB=1024KB 1GB=1024MB 1TB=1024GB8. 每⼀个CPU芯⽚都有许多管脚,这些管脚和总线相连,也可以说这些管脚引出总线。
⼀个CPU可以引出总线的宽度标志了这个CPU的不同⽅⾯的性能:V地址总线的宽度决定了CPU的寻址能⼒;Vv数据总线的宽度决定了CPU与其他器件进⾏数据传送时的⼀次数据传送量;Vvv控制总线的宽度决定了CPU对系统中其他器件的控制能⼒;9. 在每⼀台PC机中,都有⼀个主板,主板上有核⼼器件和⼀些主要器件,这些器件通过总线相连。
这些器件有:CPU,存储器,外围芯⽚组,扩展插槽等。
扩展插槽上⼀般插有RAM内存条和各类接⼝卡。
10. CPU对外部设备都不能直接控制,直接控制这些设备进⾏⼯作的是插在扩展插槽上的接⼝卡。
扩展插槽通过总线和CPU相连,所以接⼝卡液通过总线同CPU相连。
即CPU通过总线向接⼝卡发送命令,接⼝卡根据CPU的命令控制外设进⾏⼯作。
11. 随机存储器RAM,可读可写,但是必须带电存储,关机后存储的内容丢失;只读存储器ROM,只能读取不能写⼊,关机后其中的内容不丢失。
存储器从功能和连接上分为:* 随机存储器:⽤于存放供CPU使⽤的绝⼤部分程序和数据,主随机存储器⼀般由装在主板上的RAM和插在扩展插槽上的RAM组成。
学_汇编语⾔_王爽版要点采集笔记(未完待续...)第⼀章基础知识存储器(内存)存放CPU⼯作的指令和数据(CPU可以直接使⽤的信息在内存中存放);指令和数据都是⼆进制数没有任何区别,由CPU决定是数据还是指令内存单元:存储器被分为若⼲个存储单元,并从0开始编号(存储单元的地址),⼀个存储单元为1字节(8bit)CPU的读写总线逻辑上分为:地址总线、数据总线、控制总线地址总线:地址线宽度决定了CPU的寻址能⼒,计算⽅式:2^[地址线宽](个内存单元)数据总线:决定了CPU和外界的数据传输速度(8根数据总线可传送⼀个8位(bit)⼆进制数,即1个字节)控制总线:是各外部器件的不同控制线的集合CPU进⾏数据读写必须经过3类信息交互:①存储单元的地址(地址信息)②器件的选择,读或写的命令(控制信息)③读或写的数据(数据信息)读:CPU在内存中读取数据时,要先指定存储单元的地址(你要找⼀个地⽅先要确定⼀个地址),会把要读取的地址经过地址总线发给内存;同时CPU控制器将内存读命令通过控制总线发送给内存,并通知内存要读取数据;最后内存将被指定的内存单元中的数据经过数据总线送⼊CPU写:与读类似,CPU经地址线发送要操作的内存单元的地址,CPU经控制线将内存写命令发送⾄内存,并通知内存要写⼊数据;CPU通过数据线将数据送⼊指定的内存单元;内存地址空间:每⼀个外部器件都有⾃⼰的存储芯⽚(如显卡有显存RAM和ROM(装有显卡BIOS)、⽹卡ROM(装有⽹卡BIOS)),CPU控制各个设备都是通过总线向各个设备的存储芯⽚发送命令,存储芯⽚根据CPU的命令控制外设进⾏⼯作所有的物理存储器被看作⼀个由若⼲存储单元组成的逻辑存储器,每个物理内存在这个逻辑内存中占有⼀个地址段,即⼀段地址空间可看出各存储芯⽚都和CPU的总线相连;CPU对它们的读写都通过控制线发出内存读写命令CPU根据读取不同的地址实现对不同设备的读写操作,这个逻辑存储器就是内存地址空间,它的容量受CPU寻址能⼒的限制(即地址总线宽度限制),如有20位的地址总线宽度,它的寻址能⼒为2^20个内存单元(⼀个存储单元为1字节(8位))所以该CPU的内存地址空间的⼤⼩为1MB;32位地址线宽的CPU内存地址空间最⼤为为4GB(CPU不⾏的话加内存条也没得⽤!64位的就不得了了,主板不够插)1、CPU寻址能⼒ = 2^线宽2、⼀根数据总线传⼀位数据,8根数据总线⼀次传8位数据(1Byte)第⼆章寄存器CPU组成:运算器(信息处理)、控制器(控制各种器件进⾏⼯作)、寄存器(信息存储)内部总线实现CPU内部器件的联系外部总线实现CPU与主板和其他器件的联系AX、BX、CX、DX通常⽤来存放⼀般性数据——通⽤寄存器(后⾯是X的寄存器是16位的,现在的EAX前⾯加了个E是32位)这四个寄存器都可以分为两个独⽴的⼋位寄存器使⽤(如AX可分为⾼位AH和低位AL),是为了向下兼容(只使⽤低位,⾼位填0)单独使⽤时当成⼀个来看,同时使⽤时是整体(计算⽅法 2^[位数] )⼀个字=两个字节=>⼀个⼗六进制数,所以⼗六进制数的⼀位相当于⼆进制数的四位汇编指令不分⼤⼩写16位结构的CPU具备以下特征(64位同理):1、运算器⼀次最多可以处理16位的数据;2、寄存器的最⼤宽度为16位;3、寄存器和运算器之间的通路是16位的;8086CPU给出物理地址的⽅法:8086有20位地址总线,可传送20位地址,寻址能⼒为2^20 = 1M,⽽8086内部为16位结构,他只能传送16位的地址,表现出的寻址能⼒只有64,说明CPU不能直接传送16位数据地址到20位的总线上(资源浪费),所以需要转换成20位的地址;8086采⽤⼀种在内部⽤两个16位地址合成的⽅法来形成⼀个20位的物理地址(段地址和偏移地址),经过地址加法器转换成20位的物理地址,⽰意图:地址加法器的⼯作原理:物理地址 = 段地址SA*16+偏移地址EA & 物理地址 = 基础地址 + 偏移地址相当于把段地址往⾼位进了⼀位,这⾥说的16位是⼆进制的数,CPU中存储的数据只能是⼆进制,⽽我们表⽰地址是⽤16位的数字,前⾯说了2和16进制的转换关系,⼀个⼗六进制数的位等于四个位的⼆进制数,所以段地址乘以16,把段地址后移了⼀位,增加了⼀位16进制数,⼆进制就得加四位,即数据左移四位(⼆进制位),16+4=20位,转换完成⼀个数据的X进制形式左移1位,相当于乘以X(⼗进制数乘⼗后左移⼀位)⼀个数据的⼆进制形式左移N位,相当于该数据乘以2的N次⽅段落的概念:内存本⾝并没有被分段,分段概念来⾃于CPU,8086CPU⽤物理地址 = 段地址*16+偏移地址的⽅式给出内存单元的物理地址,使得我们可以⽤分段的⽅式来管理内存⽤段地址x16 定位段的起始地址,⽤偏移地址定位段中的内存单元注意:1、段地址X16必然是16的倍数,即⼀个段的起始地址也⼀定是16的倍数2、偏移地址为16位,16位地址的寻址能⼒为64k,所以⼀个段的长度最⼤为64kCPU访问内存单元时必须向内存提供内存单元的物理地址(有地址才知道要访问哪⾥)CPU可以⽤不同的段地址和偏移地址形成同⼀个物理地址(段地址+偏移地址都等于物理地址)偏移地址EA为16位,变化范围0~FFFFH,仅⽤偏移地址来寻址最多可寻64k个内存单元(如段地址位1000H,那么CPU寻址范围为:10000H~1FFFFH储存单元的地址⽤段地址和偏移地址描述:数据在21F60中 a、数据存在内存2000:1F60单元中;b、数据存在内存的2000段中的1F60中;(可将地址连续、起始地址为16的倍数的⼀组内存单元定义为⼀个段)段寄存器:提供段地址,8086CPU有4个段寄存器:CS(代码(指令)段寄存器)、DS(数据段寄存器)、SS(堆栈stack段寄存器)、ES(附加段寄存器)CS和IP(指令指针寄存器)是8086CPU中最关键的寄存器,存放CPU当前要读取的指令的地址在任何时候,CPU将CS为指定(存放)指令的段地址(代码段⾸地址),IP指定(存放)指令的偏移地址(指令从哪处代码开始执⾏),CS和IP经过地址加法器加⼯后(通过输⼊输出控制电路)从地址总线指向内存单元读取指令,指令再通过数据总线(经过输⼊输出控制电路)传递给指令缓冲器,再到执⾏控制器,实现执⾏效果内存中被CPU执⾏过的代码必然被CS:IP指向过1. 从 CS : IP 指向内存单元读取指令,读取的指令进⼊指令缓冲器2. IP = IP + 所读取指令的长度,从⽽指向下⼀条(即所指向的指令执⾏完后接着运⾏接着的下⼀条指令)CPU加电启动或复位时,CS=FFFFH,IP=0000H,即CPU刚启动时读取并执⾏的第⼀条指令是FFFF0H修改CS、IP值的指令:转移指令 jmp1. 同时修改CS、IP的内容:jmp 段地址:偏移地址(例:jmp 2AE3:3)2. 只修改IP的内容:jmp 某⼀合法寄存器(jmp ax),⽤寄存器中的值修改IP代码段:根据需要,将⼀组内存单元定义为⼀个段:把长度<=64kb的⼀组代码存在⼀组地址连续、起始地址为16的倍数的内存单元中(个⼈理解为偏移地址需要16位的位置),这段内存⽤来存放代码,从⽽定义了⼀个代码段(代码段不能影响CPU来是否执⾏它,还是得看CS:IP所指向的内存单元中的内容为指令,代码段仅仅是⼀种编程格式)所以要将CS:IP指向所定义的代码段中的第⼀条指令的⾸地址debug命令:R 查看、改变CPU寄存器的内容(修改寄存器中的值:r [寄存器名])D 查看内存中的内容( d 段地址:偏移地址)E 改写内存中的内容U 将内存中的及其指令翻译成汇编指令T 执⾏⼀条机器指令A 以汇编指令的格式在内存中写⼊⼀条机器指令第三章寄存器(内存访问)字单元:存放字型数据的内存单元⼀个字等于两个字节,⼀个字节等于8⽐特,则⼀个字型数据有16位;因为有两个字节组成,字可分为⾼位和低位,图中0和1可组成⼀个字,1位⽐0位⾼,所以他们组成的字,⾼位是4E,低位是20即4E20(可以直接⽤字的起始地址描述它,如0地址字单元)任何两个地址连续的内存单元,可以将其看成⼀个内存字单元,⼀个为字低位字节单元,⼀个为字⾼位字节单元DS寄存器和 [address]DS寄存器:⽤来存放要要访问数据的段地址(⾸地址),配合 [ EA ] 使⽤,[ ] 说明操作的是⼀个内存单元,EA为偏移地址,段地址为DS中存放的地址数据段:将⼀组长度⼩于64k、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,从⽽定义了⼀个数据段;具体操作时⽤ds存放数据段的段地址,在根据需要⽤相关指令访问数据段中的具体单元栈(stack):出⼊栈规则LIFO(后进先出)⼊栈:push 出栈:poppush 寄存器 pop 寄存器push 段寄存器 pop 段寄存器push 内存单元 pop 内存单元内存空间是如何被当做栈使⽤的:每执⾏⼀次⼊栈指令,都会将寄存器的内容放⼊栈顶单元的上⽅,此时段寄存器SS、寄存器SP就会存放栈顶的地址及偏移量,任何时候SS:SP都指向栈顶元素,执⾏push和pop时,CPU从SS和SP中获取段顶地址⼊栈时:SP=SP-2 (⼊栈时由⾼位往低位⾛)出栈时:SP=SP+2 (出栈时由低位往⾼位⾛)注意:⼊栈时的偏移量SP的取值要⽐当前栈最⾼位+1位(如要⼊栈⾄1000E~F(即栈最底部的字单元地址000E),SP值应⽐F⾼⼀位0010栈顶越界:需⾃⾏根据所安排的栈⼤⼩进⾏出⼊栈,避免⼊栈数据太多越界,也要避免空栈的时候继续出栈导致越界;越界会覆盖或修改掉可能是其他程序的内存数据或指令,需要注意!push执⾏时,CPU改变栈顶的指向,即SP=SP-2,再将数据传⼊SS:SP指向的字单元中;pop执⾏时,CPU先读取栈顶指向的字单元数据,再改变SP,即SP=SP+2;可见push、pop指令修改的只是SP,栈顶的变化范围为:0~FFFF栈操作机制:SS:SP指⽰栈顶;改变SP后写内存的⼊栈指令;读内存后改变SP的出栈指令Debug的 T 命令在执⾏修改寄存器SS的指令时,下⼀条指令也紧接着被执⾏(mov ss,ax ; mov ss,[0] ; pop ss)可⽤段寄存器表⽰内存单元的段地址:第四章汇编程序编写汇编源码----编译连接----可执⾏⽂件(包含由汇编指令翻译过来的机器码和源程序中定义的数据以及相关的描述信息,如程序⼤⼩,占⽤多少内存空间等)伪指令:段名 segment ;定义⼀个段,该段从此开始:段名 ends ;该段从此结束end:汇编程序结束的标记assume:含义为“假设”,假设某⼀段寄存器和程序中的某⼀个⽤segment…ends定义的段相关联,⽤于说明关联的关系。
⑴一个CPU的寻址能力为8KB,那么它的地址总线宽度为:13解析:1KB=1024B --> 8KB=8*1024B=23*210B=213B,也就是说,假设将每一个存储单元(1B=8bit)理解成一个房间,那么213B也就是说能找到213这么多个的房间数,房间编号从0--213-1 213就是CPU的寻址能力,也可以说是CPU寻址空间大小。
既然CPU能找到这么多种编号的房间,每一根线能传输0或者1也就是有213中可能,也就是说有13根地址总线,因此它的地址总线宽度为13。
假设将8KB改8Kb,1Kb = 1024 b,8kb = 1024 * 8 b=1024 Byte= 210=1024字节,所以地址总线宽度为10⑵1KB的存储器有1024个存储单元,存储单元的编号从0到1023解析:1个存储单元是8bit,即1Byte(字节),1字节就是一个存储单元,根据换算关系,1KB=1024B,即1KB有1024个存储单元,存储单元的编号都是从0开始编起,若有n根地址总线编号就从0到2n-1,假设地址总线有3根,那么能表示不同的标号情况有000,001,010,011,100,101,110,111。
即有这8种情况,对应的十进制为0-7。
(3) 1KB的存储器可以存储1024*8个bit,1024个Byte解析:1B=8bit,1KB=1024B;那么1024B=1024*8bit(4)1GB、1MB、1KB分别是230220210个Byte解析:根据换算关系1GB=1024MB=1024*1024KB=1024*1024*1024Byte,1MB=1024KB=1024*1024Byte,1KB=1024B。
(5)8080、8088、80286、80386的地址总线宽度分别为16根,20根,24根、32根 ,则它们的寻址能力分别为:26(KB )、1(MB )、24(MB )、4(GB )解析:8080的寻址能力大小为216B ,转换为KB 就是26KB ,8088的寻址空间大小为220B=210KB=1MB ,80286的寻址能力为224B=214KB=24MB ,80386的寻址空间大小为232B=222KB=212MB=4GB(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根,则它们一次可以传送的数据为1(B )、1(B )、2(B )、2(B )、4(B )解析:传送的数据可分为有符号和无符号的,如果是有符号的,那么最高位0代表在正数,为1代表负数。
汇编语言王爽第三版课后答案【篇一:汇编语言王爽第二版课后答案】lass=txt>----------------------(1) 13(2) 1024,0,1023 (3) 8192,1024(4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制注意:1.第4题中的符号^指求幂运算(如: 2^30指2的30次方)第二章寄存器(cpu工作原理)检测点2.1(第18页) ----------------------(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:f4a3h 第二空:31a3h 第三空:3123h 第四空:6246h 第五空:826ch 第六空:6246h 第七空:826ch 第八空:04d8h 第九空:0482h 第十空:6c82h 第十一空:d882h 第十二空:d888h 第十三空:d810h 第十四空:6246h(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax检测点2.2(第23页) ----------------------(1)00010h,1000fh (2)1001h,2000h第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001h或大于2000h时cpu都无法寻到。
检测点2.3(第33页) ----------------------答:cpu修改了4次ip的值。
情况如下:第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后第3次:读入jmp ax后第4次:执行完jmp ax后最后ip的值为0实验1 查看cpu和内存,用机器指令和汇编指令编程(第33页)-----------------------------------------------------1.预备知识:debug的使用此部分略2.实验任务(第43页) (1)此部分略 (2)此部分略(3)通过debug中的d命令查看到主板的生产日期[以月、日、年,分隔符为/的格式]存储在内存ffff:0005~ffff:000c(共8个字节单元中)处。
《汇编语⾔》(王爽)笔记1、有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
2、汇编指令伪指令3、CPU通过总线控制接⼝,接⼝控制设备4、CPU对物理器件的操作,通过控制线发出内存读写命令,把他们都当作内存来对待。
所有的物理存储器被看作⼀个由若⼲存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中张有⼀个地址段,即⼀段地址空间。
CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。
5、内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。
6、mov ax,8226mov bx,axadd ax,bxax + bx = 1044CHax = 044CH(最⾼位并不丢弃,只是存不下)7、mov ah,0mov al,C5Hadd al,93Hal + 93H = 158Hax = 0058H(此时al作为⼀个独⽴的8位寄存器来使⽤的,和ah没有关系,CPU在执⾏这条指令是认为ah和al是两个不相关的寄存器。
不要错误的认为,诸如add al,93H的指令产⽣的进位会存储在ah中,add al,93H 进⾏的是8为运算)add ax,93Hax =0158H(如果执⾏add ax,93H ,低8位的进位会存储在ah中,CPU在执⾏这条指令时认为只有⼀个16位寄存器ax,进⾏的是16位运算。
)8、在8086PC机中,存储单元的地址⽤两个元素来描述,即段地址和偏移地址段地址*16 + 偏移地址 = 物理地址⼀个段的起始地址⼀定是16的倍数,⼀个段的长度最⼤为64KB9、 4个段寄存器:cs、ds、ss、es10、CS、IP是8086CPU中两个最关键的寄存器,它们指⽰了CPU当前要读取指令的地址。
CS为代码段寄存器,IP为指令指针寄存器。
在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始,读取⼀条指令并执⾏。
教案王爽汇编语言示例1:教案王爽汇编语言讲述了汇编语言的基本概念、用法和应用。
本文将从以下几个方面展开讨论。
首先,我们将介绍汇编语言的概念和历史背景。
汇编语言是一种低级编程语言,它使用符号和指令来表示计算机硬件的操作。
它在计算机发展的早期起到了重要的作用,因为它直接与底层硬件交互,可以实现高效的程序执行。
接下来,我们将探讨汇编语言的用法和基本指令。
汇编语言使用不同的指令来执行不同的操作,比如加载数据、计算、存储等。
这些指令以助记符的形式表示,例如MOV表示数据传输,ADD表示加法运算等。
了解这些指令的用法可以帮助我们编写有效的汇编程序。
然后,我们将介绍教案王爽编写的汇编语言教学资料的特点和优势。
教案王爽是一位资深的计算机教育专家,他以简洁明了的语言和丰富的示例帮助学生理解和掌握汇编语言。
他的教材结构严谨,从基础概念到实际应用形成一套完整的学习体系。
最后,我们将讨论汇编语言的应用领域和未来发展。
汇编语言虽然在现代编程中使用较少,但它仍然在嵌入式系统、驱动程序和底层优化等领域中发挥着重要作用。
同时,随着技术的进步,汇编语言的应用可能会有所变化,例如与高级语言的结合等。
总的来说,教案王爽编写的汇编语言教学资料对于学习者来说是一份宝贵的资源。
通过学习汇编语言,我们可以更好地理解计算机的运作原理,提高编程能力,并在特定领域中发挥自己的优势。
示例2:编写教案是培养学生编程技能和计算思维的重要任务之一。
在当今计算机科学的快速发展中,汇编语言作为计算机底层的指令集,对于深入理解计算机硬件的工作原理和进行高效编程至关重要。
本文将介绍教案王爽撰写的有关汇编语言教学的相关内容。
教案王爽是一位知名的计算机教育专家,他为学生和编程爱好者们编写了多本汇编语言教材和教案。
这些教材以简洁明了的风格,全面系统地介绍了汇编语言的基本概念、语法规则和编程技巧。
教案王爽的教学方法注重实践,通过大量的实例和编程练习,帮助学习者掌握汇编语言的使用。
《汇编语言》学习笔记(清华大学王爽)清华大学《汇编语言》(王爽)读书笔记第一章基础知识◎汇编语言由3类指令组成汇编指令:机器码的助记符,有对应机器码。
伪指令:没有对应机器码,由编译器执行,计算机并不执行其他符号:如+-*/,由编译器识别,没有对应机器码◎一个CPU有n根地址线,则可以所这个CPU的地址线宽度为n,这样的CPU最多可以寻找2的n 次方个内存单元。
◎ 1K=2^10B 1M=2^20B 1G=2^30B◎8086 CPU地址总线宽度为20,寻址范围为00000~FFFFF00000~9FFFF 主存储器地址空间(RAM)A0000~BFFFF 显存地址空间C0000~FFFFF 各类ROM地址空间第二章寄存器(CPU工作原理)◎16位结构描述了一个CPU具有下面几个方面的结构特性运算器一次最多可以处理16位的数据寄存器的最大宽度为16位寄存器和运算器之间的通路为16位◎8086有20位地址总线,可以传送20位地址,达到1M的寻址能力。
采用在内部用两个16位地址合成的方法来形成一个20位的物理地址◎物理地址 = 段地址× 16 + 偏移地址◎在编程是可以根据需要,将若干地址连续的内存单元看作一个段,用段地址×16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。
段地址×16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址位16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB◎8086有四个段寄存器 CS、DS、SS、ES◎CS为代码段寄存器,IP为指令指针寄存器。
任意时刻,设CS中内容为M、IP中内容为N,8086CPU从内存M×16+N读取一条指令执行◎不能用mov修改CS、IP,因为8086CPU没有提供这样功能,可用指令JMP 段地址:偏移地址。
JMP 2AE3:3 JMP AX 修改IP 第三章寄存器(内存访问)◎DS数据段寄存器。
汇编语⾔第3版王爽检测点答案及详细解析汇编语⾔第3版王爽检测点答案及详细解析转⾃:https:///qq_42777804/article/details/90512159第⼀章基础知识检测点1.1(1)1个CPU的寻址能⼒为8KB,那么它的地址总线的宽度为 13位。
(2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。
(3)1KB的存储器可以存储 8192(2^13)个bit, 1024个Byte。
(4)1GB是 1073741824 (2^30)个Byte、1MB是 1048576(2^20)个Byte、1KB是 1024(2^10)个Byte。
(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能⼒分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们⼀次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。
(7)从内存中读取1024字节的数据,8086⾄少要读 512 次,80386⾄少要读 256 次。
(8)在存储器中,数据和程序以⼆进制形式存放。
解题过程:(1)1KB=1024B,8KB=1024B*8=2^N,N=13。
(2)存储器的容量是以字节为最⼩单位来计算的,1KB=1024B。
(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。
(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。
(5)⼀个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次⽅个内存单元。
(⼀个内存单元=1Byte)。
⑴一个CPU的寻址能力为8KB,那么它的地址总线宽度为:13
解析:
1KB=1024B --> 8KB=8*1024B=23*210B=213B,也就是说,假设将每一个存储单元(1B=8bit)理解成一个房间,那么213B也就是说能找到213这么多个的房间数,房间编号从0--213-1 213就是CPU的寻址能力,也可以说是CPU寻址空间大小。
既然CPU能找到这么多种编号的房间,每一根线能传输0或者1也就是有213中可能,也就是说有13根地址总线,因此它的地址总线宽度为13。
假设将8KB改8Kb,1Kb = 1024 b,8kb = 1024 * 8 b=1024 Byte= 210=1024字节,所以地址总线宽度为10
⑵1KB的存储器有1024个存储单元,存储单元的编号从0到1023
解析:1个存储单元是8bit,即1Byte(字节),1字节就是一个存储单元,根据换算关系,1KB=1024B,即1KB有1024个存储单元,存储单元的编号都是从0开始编起,若有n根地
址总线编号就从0到2n-1,假设地址总线有3根,那么能表示不同的标号情况有000,001,010,011,100,101,110,111。
即有这8种情况,对应的十进制为0-7。
(3)1KB的存储器可以存储1024*8个bit,1024个Byte
解析:1B=8bit,1KB=1024B;那么1024B=1024*8bit
(4)1GB、1MB、1KB分别是230220210个Byte
解析:根据换算关系1GB=1024MB=1024*1024KB=1024*1024*1024Byte,1MB=1024KB=1024*1024Byte,1KB=1024B。
(5)8080、8088、80286、80386的地址总线宽度分别为16根,20根,24根、32根 ,则它们的寻址能力分别为:26(KB )、1(MB )、24(MB )、4(GB )
解析:8080的寻址能力大小为216B ,转换为KB 就是26
KB ,8088的寻址空间大小为2
20B=210KB=1MB ,80286的寻址能力为224B=214KB=24MB ,80386的寻址空间大小为232B=222KB=212MB=4GB
(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根,则它们一次可以传送的数据为1(B )、1(B )、2(B )、2(B )、4(B )
解析:传送的数据可分为有符号和无符号的,如果是有符号的,那么最高位0代表在正数,为1代表负数。
如果是8根,那么可以表示的数据范围为 1~2277--
,如果是16根,数据范围为1~221515--,如果是32根,那么就是223131~-。
如果是无符号的对于8
根的,就是1~028-,16根就是1~0216-,32根就是1~0232
-,1根数据总线可以传一个0或者1,8根就可以传1个字节,16根可传2字节,32根可传4字节,以此类推。
(7) 从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
解析:CPU 从内存中读取数据,8086的CPU 数据总线的宽度为16根,一次读2个字节,因此1024B 至少要读取512次,80386数据总线宽度为32根,所以至少要读取1024/4=256字节。
(8)在存储器中,数据和程序以二进制的形式存放。