Archives : September-2020

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 17 编写包含多个功能子程序的中断例程
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_17」
文章标识:「0d48ffdd」

参考答案
第一步、编写中断例程

assume cs:codeseg

codeseg segment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 15 安装新的 int 9 中断例程
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_15」
文章标识:「af3112ce」

参考答案
实验内容
安装一个新的 int 9 中断例程,功能:在 DOS 下,按下”A”键后,除非不再松开,如果松开,就显示满屏幕的”A”,其他的键照常处理。
提示:按下一个键时产生的扫描码[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 14.2
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_14.2」
文章标识:「da6ca206」

参考答案
编程,用加法和移位指令计算(ax)=(ax)*10 提示:(ax)*10=(ax)*2+(ax)*8

assume cs:codeseg

codeseg segment
start:
mov bx[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 7 寻址方式在结构化数据访问中的应用
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_07」
文章标识:「3a110609」

assume cs:codesg

datasg segment
; 年份 21×4=84, 0-83
db ‘1975’,’1976′,’1977′,’1978′,’1979′,’198[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 13 编写、应用中断例程
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_13」
文章标识:「dd88d8e3」

显示壹个用零结束的字符串
调用中断例程的程序

assume cs:code

data segment
db ‘Welcome to masm!’, 0
data ends

code segment[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 12 编写 0 号中断的处理程序
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_12」
文章标识:「cd8cdd2b」

第一步、准备溢出程序
我们要准备溢出程序,用于后面的测试:

assume cs:codeseg

codeseg segment
_start:
mov ax, 1000H
mov b[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 14 访问 CMOS RAM
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_14」
文章标识:「5f0102e9」

参考答案

assume cs:codeseg

codeseg segment
separator:
db ‘/’, ‘/’, ‘ ‘, ‘:’, ‘:’
date_index:
db 9, 8,[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 16 编写包含多个功能子程序的中断例程
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_16」
文章标识:「73623d97」

参考答案
第一步、编写多功能的中断例程

assume cs:codeseg

codeseg segment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 11.4
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_11.4」
文章标识:「90cca222」

参考答案
(ax)=45
推算过程
在 popf 后,标志寄存器中,本章节介绍的那些标志位都为零(没学过的位置用 * 先代替) 那么 pushf 将计算后的当时状态的标志寄存器入栈,然后 pop 给 ax 寄存器[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 17.1
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_17.1」
文章标识:「b7301a7e」

参考答案
“在 int 16h 中断例程中,一定有设置 IF=1 的指令。”,这种说法是对的吗?
这种说法是正确的。因为 int 16h 中断例程会检测键盘缓冲区是否有数据,如果没有数据将循环检测。如果设置 IF =[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:课程设计 1
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:Course_Design_01」
文章标识:「e1cf2fa4」

第一步、调整 dtoc 程序
在实验 10 中编写 dtoc 程序能够显示数值,但是存在以下问题: 1)原有 dtoc 只能支持 16 位被除数,但是收入数据是 32 位,需要添加支持; 2)除法存在溢出问题,并[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 10 编写子程序
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_10」
文章标识:「4774bcc1」

1)显示字符串

assume cs:codeseg, ds:data

data segment
db ‘Welcome to masm!’, 0
data ends

codeseg segment

st[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 15.1
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_15.1」
文章标识:「4be49d23」

参考答案
1) 由于这段程序是在中断例程中执行的,因此在进入中断例程时,标志位 IF TF 已经设置为零,无需再次设置:

pushf
call dword ptr ds:[0]

2) 问题出现在[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 11.3
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_11.3」
文章标识:「7fe3beea」

参考答案
1)补全下面的程序,统计F000:0处32个字节中,大小在[32,128]的数据个数。

mov ax,0f000h

mov ds,ax

mov bx,0 ;ds:bx指向第一[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:检测点 12.1
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:CP_12.1」
文章标识:「4068c181」

参考答案
1) 用 debug 查看内存,情况如下: 0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00 则 3 号中断源对应的中断处理程序入口的偏移地址的内存[……]

Read more

原文链接:「汇编语言 第 3 版 王爽」- 参考答案:实验 11 编写子程序
文章分类:「01.Section_of_the_Computer_Hardware:1.CPU_-_Central_Processing_Unit:x86_Assembly_Language:ISBN_-_9787302333142:EXP_11」
文章标识:「d25c6924」

参考答案

assume cs:codeseg

dataseg segment
db “Beginner’s All-purpose Symbolic Instruction Code.”,0
data[……]

Read more