这本书购于2015.11.30,我大概从2016.3月开始读,历时大概三个月,我们学校开《微机原理与汇编语言》这门课,不过让人感觉很不爽,课本一开始就丢给你一堆东西,意欲让你记住这一大堆东西,然后开始编程,我对编程语言的学习方面要求比较高,所以开始读这本王爽老师写的汇编语言,目前为止,这本书给我的感觉就是,你能学到很多底层的东西,尤其是像键盘的读写原理,屏幕的显示,特别是对内存的操作和管理,不像课本上给你一个中断让你就能显示字符之类的,它会一步一步教你怎么把要显示的东西写到显存里面,这本书显得比较浅显易懂,让人感觉不错,特别是读了这本书再去看那些难度较高的汇编代码及微机原理,效率会高很多,下面是我读这本书的过程中对书中检测点的解答,仅代表个人观点。

第一章
检测点1.1
1) 13(8kb = 8 * 1024 = 2^13)  2) 1024 0 10233) 8*1024 1024(1 byte = 8 bit,计算机以byte为存储单位)4) 1024^3 1024^2 10245) 2^6 1 2^4 2^2(kb = 2^10 Mb = 2^20 Gb = 2^30)6) 1 1 2 2 47) 512 256(8086的寄存器为16位寄存器,一次可以读取两个字节,80386为32位寄存器)8) 二进制

第二章
检测点2.1
1)
AX = F4A3h
AX = 31A3h
AX = 3123h
AX = 6246h
BX = 826Ch
CX = 6246h
AX = 826Ch
AX = 04D8h
AX = 0482h
AX = 6C82h
AX = D882h
AX = D888h
AX = D810h
AX = 6246h2)
mov ax,2
add ax,ax
add ax,ax
add ax,ax检测点2.2
1)00010h 1000fh(0001h+0000h 0001h+ffffh)2)1001h 2000h(偏移地址的范围为0000-ffff,内存单元=段地址*16+偏移地址,当偏移地址最小时,段地址最大,偏移地址最大时,段地址最小)检测点2.3
4次修改IP,最后IP为0

第三章
检测点3.1
1)
mov ax,1
mov ds,ax
mov ax,[1000] AX = 2662h
mov bx,[1001] BX = E626h
mov ax,bx       AX = E626h
mov ax,[0000] AX = 2662h
mov bx,[0002] BX = D6E6h
add ax,bx        AX = FD48h
add ax,[0004]  AX = 2C14h
mov ax,0         AX = 0000h
mov al,[0002]  AX = 00E6h
mov bx,0         BX = 0000h
mov bl,[000C]  BX = 0026h
add al,bl          AX = 000Ch2)
CS = 2000h,IP = 0,DS = 1000h
mov ax,6622h  AX = 6622h
jmp 0ff0:0100h CS = 0ff0 IP = 0100h
mov ax,2000h  AX = 2000h
mov ds,ax       DS = 2000h
mov ax,[0008] AX = C389h
mov ax,[0002] AX = EA66h
mov ax,6622h  AX = 6622h
数据和程序表达上没有区别,只跟存储的地方有关,存在数据段中即为数据,存在程序段中就是程序检测点3.2
1)
mov ax,2000h
mov ss,ax
mov sp,10h2)
mov ax,1000h
mov ss,ax
mov sp,0

第六章
检测点6.1
1)
mov cs:[bx],ax2)
cs
26或1ah
pop cs:[bx]

第九章
检测点9.1
1)
db 8 dup (0)2)
offset start
cs
3)
CS = 0006h IP = 00BE检测点9.2
mov cl,[bx]
mov ch,0
jcxz ok
inc bx检测点9.3
inc cx(因为loop s执行时是先将cx减一再与0比较)

第十章
检测点10.1
1000
0000检测点10.2
ax = 3检测点10.3
ax = 1006检测点10.4
ax = 9
(call ax时将IPpush到栈中,也就是push 3)检测点10.5
1)
ax = 3
2)
ax = 0001 bx = 0000

第十一章
检测点11.1
1 1 0
1 1 0
1 1 0
1 1 0
0 0 0
0 1 0
0 1 0
检测点11.2
0 0 0 1 1
0 0 0 1 1
0 0 1 0 0
0 0 1 0 0
1 1 0 1 11 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.1
1)
039D:00162)
0000:[4N]
0000:[4N+2]

检测点13.1
assume cs:code,ds:datadata segmentdb 'conversation',0data endscode segment
start:    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 21h
show:    push bpmov bp,spadd [bp+2],bxpop bpiret
showend:nopcode endsend start
检测点13.2
1)
错误,不能向BIOS中写程序
2)
错误,19h中断在操作系统以前,而DOS由操作系统控制即在操作系统以后

检测点14.1
1)
mov al,2
out 70h,al
in al,71h
2)
mov al,0
out 71h,al
mov al,2
in 70h,al
检测点14.2
在不考虑溢出的情况下:
mov ax,__
mov bx,ax
shl bx,1
mov cl,3
shl ax,cl
add ax,bx

第十五章
检测点15.1
1)
pushf
call dword ptr ds:[0]2)
在中断向量表中设置新的int9中断入口地址的时候不让其发生中断,即
cli
mov word ptr es:[9*4],offset int9
mov word ptr es:[9*4+2],cs
sti
恢复中断向量表int9的源地址时同理:
cli
push ds:[0]
pop es:[9*4]
push ds:[2]
pop es:[9*4+2]
sti

第十六章
检测点16.1
a[si]
b
b
1
检测点16.2
mov ax,data
mov es,ax

第十七章
检测点17.1
IF = 1 DI(disable interupt)
IF = 0 EI(enable interupt)
当执行int16中断时是从缓冲区中读出字符,若缓冲区为空,则int16应该可以响应int9的中断,故IF不一定为1

转载于:https://www.cnblogs.com/monster-prince/p/5525220.html

汇编语言(王爽 第三版)检测点相关推荐

  1. 汇编语言(王爽 第三版)检测点9.1 解决-a无法输入jmp dword ptr es:[1000h]

    第一个: assume cs:code,ds:data data segmentdb 0h data ends code segment start:mov ax,datamov ds,axmov b ...

  2. 汇编语言王爽第三版答案

    汇编语言答案(王爽) 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位. (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 . (3) ...

  3. 【汇编语言】王爽第三版----------------检测点3.1

    检测点3.1: (1)在Debug 中,用"d 0:0 1f" 查看内存,结果如下: 0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 6 ...

  4. 汇编语言(王爽 第三版) ret retf总结 以及检测点10.1

    关键导读: ret对应的代码以及结果: assume cs:codesgstack segmentdb 16 dup(0) stack endscodesg segmentmov ax,4c00hin ...

  5. 汇编语言(王爽第三版)实验一

    实验一 题目预览 使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后的CPU中相关寄存器中内容的变化. 将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方 ...

  6. 汇编语言(王爽第三版)实验大全

    实验大全 实验1 查看CPU和内存,用机器指令和汇编指令编程 实验2 用机器指令和汇编指令编程 实验3 编程.编译.连接.跟踪 实验4 [bx]和loop的使用 实验5 编写.调试具有多个段的程序 实 ...

  7. 汇编语言 王爽 第四版 第三章 检测点3.2

    汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点3.2 1 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中. mov ax,1 ...

  8. 汇编语言(王爽第三版) 实验5

    汇编语言(王爽第三版) 实验5 由图可见: 第一问:cpu执行程序,程序返回前,ds一直未变,所以data段中的数据不变. 第二问:cpu执行程序,程序返回前,cs=1CD5,SS=1CD4,DS=1 ...

  9. 汇编语言 王爽 第四版 第二章 检测点2.2

    汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...

最新文章

  1. linux批量管理矿机,华硕最新的挖矿主机板可以一次控制 20 个 GPU
  2. Linux命令:模拟电信联通双网络智能解析域名
  3. 五边形创意画_绝了,自己做吊灯,创意满满!不仅好看还省钱!
  4. 【收藏】Harbor私有仓库中如何彻底删除镜像释放存储空间:vmware/registry:2.6.2-photon进行垃圾回收
  5. GET_ROLE_BASED_PAGE_USAGES
  6. win7本地连接不见了的修复方法
  7. devexpress 打印一个form界面_通过回车键提交form表单时,你是否注意过这些问题?...
  8. Java编程:分治算法
  9. 经典场效应管如何快速关断技巧-KIA MOS管
  10. 一级导航,二级导航,三级导航介绍
  11. java openxml word_使用OpenXML操作Office文档
  12. 选择重新做程序员 作者:Pisces Lee
  13. 你一定会用到的SolidWorks快捷键汇总大全
  14. jenkins下载插件慢
  15. 《Pro SQL Server Internals, 2nd edition》节选翻译(一)
  16. 长城信息IPO过会:年营收13.4亿 中国电子控制77%股权
  17. WR703N修砖记 --- 刷机有风险, 折腾需谨慎
  18. 【大厂面试】面试官看了赞不绝口的Redis笔记
  19. frp构建多级网络代理
  20. 如何迁移outlook邮件到另一个硬盘_移动Outlook数据文件新计算机|迁移Outlook邮件到新计算机...

热门文章

  1. ibatis.net:第六天,QueryForList
  2. HttpClient官方sample代码的深入分析(连接池)
  3. 第2小节,深入剖析gym环境构建
  4. C++ primer 11章关联容器
  5. IOS 创建简单表视图
  6. C#。2.1 运算符
  7. FZU_1683 矩阵快速幂 求和
  8. [delphi]极域学生端解除键盘鼠标锁定退出全屏广播-强制窗口化-源代码
  9. 加快Vue项目的开发速度
  10. [ES6] 细化ES6之 -- 数组的扩展