和Steve之间的通信--RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10

简介: Steve,mtpi是一个汇编指令,用于在内核模式和用户模式之间传递数据。在第18页有描述From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10Date: Sun, 20 Nov 2011 17:01:08 +0800 郝先生,mtpi函数的代码在哪一页?我重新翻阅了一下,除了在第140页处(最后一段)可以找到一点有关mtpi的说明外,我没有发现书里有mtpi的代码。
Steve,
mtpi是一个汇编指令,用于在内核模式和用户模式之间传递数据。在第18页有描述

From: quntmec@hotmail.com
To: qf.hao@hotmail.com
Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10
Date: Sun, 20 Nov 2011 17:01:08 +0800

郝先生,

mtpi函数的代码在哪一页?我重新翻阅了一下,除了在第140页处(最后一段)可以找到一点有关mtpi的说明外,我没有发现书里有mtpi的代码。

Steve

From: qf.hao@hotmail.com
To: quntmec@hotmail.com
Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10
Date: Sun, 13 Nov 2011 21:08:41 +0800

因为mtpi指令把栈指针又恢复了(+2),所以32次循环后,sp还是不变。

From: quntmec@hotmail.com
To: qf.hao@hotmail.com
Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10
Date: Sun, 30 Oct 2011 14:22:21 +0800

郝先生,

谢谢你的回复。对于1,我的问题更正如下:

第145页,函数clearseg(),第12行(clr -(sp))。假设循环前栈顶为SP,在循环32次后,栈顶为何不是在 (SP-64)( 这里是64,我之前算错了)?即在循环32次的过程中,堆栈的栈顶并没有持续往低地址发展(但在循环中却有会另栈顶往低地址发展的语句,如上面提到的第12句)?

Steve

From: qf.hao@hotmail.com
To: quntmec@hotmail.com
Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_10
Date: Sat, 29 Oct 2011 22:09:31 +0800

Steve,
请见答案如下。

From: quntmec@hotmail.com
To: qf.hao@hotmail.com
Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_10
Date: Wed, 26 Oct 2011 17:55:22 +0800

郝先生,

1、第145页,函数clearseg(),第12行(clr -(sp))。假设循环前栈顶为SP,在循环32次后,栈顶为何不是在 (SP-62)?即在循环32次的过程中,堆栈的栈顶并没有持续往低地址发展(但在循环中却有会另栈顶往低地址发展的语句,如上面提到的第12句)?
郝:我没有太理解你的问题。这里是一个32次的循环,每次SP -2,这样32次之后就减了64.
2、第149页,第3段,即代码 _lshift 处,第7行不太理解(mov r1 , r0)。在整个32位整数的左移过程中,高16(r0)和低16位(r1)都进行了左移,为何到最后时用低16位(r1)覆盖高16(r0)呢?
郝:
你的问题很好,这里lshift主要用来做32位的除法(你可以从其被调用看到),16位结果=32位被除数/16位数,所以最后结果只取低16位。
否则对于乘法运算确实有问题。再版我考虑加上说明。

此外,勘误如下:

142 6 1 跳转到第23行(应为16行)。后面接着的24行、25行和26行分别改为17行,18行和19行。
145 7 1 8行设定1号用户活动页地址寄存器….(应为描述符寄存器)
郝:对。谢谢

Steve







    
    
    
《返璞归真--UNIX技术内幕》
目录
相关文章
|
6月前
|
网络协议 Unix Go
Go unix domain socket通信
Go unix domain socket通信
|
Unix
和Steve之间的通信--关于《UNIX技术内幕》的勘误及遇到的问题_3
From: quntmec@hotmail.comTo: qf.hao@hotmail.comSubject: 关于《UNIX技术内幕》的勘误及遇到的问题_3Date: Thu, 6 Oct 2011 19:24:10 +0800 郝先生,对于启动模块这一章...
755 0
|
Unix
《返璞归真--UNIX技术内幕》--第14章 多线程的实现
14.1  概述 现代操作系统引入了线程的概念。线程是CPU执行的最小单元,相对于进程而言,它具有轻捷、高效、开销小等优点。 14.2  线程和经典进程的比较 线程和经典进程的主要区别如下。
850 0
|
Unix
《返璞归真--UNIX技术内幕》-- 第11章 UNIX可执行文件
11.1  .out文件 本版UNIX的可执行文件是.out格式,如果你在UNIX下用gcc编译程序,它默认会生成一个名为“a.out”的可执行文件。
851 0
|
存储 缓存 Unix
《返璞归真--UNIX技术内幕》--第9章 字符设备驱动
本系统中的输入输出设备都是字符设备,它们包括:KL-11/DL-11A——电传串行接口、PC-11——纸带打孔机和LP-11——行打印机。其中KL-11用于连接终端(terminal),作为用户键盘输入和显示输出的交互接口。
927 0
|
Unix
《返璞归真--UNIX技术内幕》--源代码
本源代码经宁希波帮助整理,去除了''和'&'符号,在此表示诚挚的谢意!源码中除/usr/personal目录外,均由Bell Labs(贝尔实验室)开发。
664 0
|
Unix
《UNIX技术内幕》--第3章 虚拟内存
Normal 0 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.
598 0
|
Unix C语言
《返璞归真--UNIX技术内幕》--第6章 中断处理过程
6.4  PDP 11/40的中断类型 系统中的中断主要有下面几种。 6.4.1  电传终端接口输入中断 电传终端接口用于链接PDP 11/40的总线和主要的输入、输出终端,当时该终端是电传打字机,这也是UNIX中用tty(teletypewriter)表示进程所使用的终端类型的原因,事实上电传接口还可以连接彩色显示器(CRT)等。
884 0
|
Unix Linux 调度
《UNIX技术内幕》勘误及问题解答_26
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: 关于《UNIX技术内幕》的勘误及遇到的问题_26 Date: Sun, 26 Feb 2012 16:34:18 +0800 郝先生, 线程方面碰到的问题如下: 1、689页,倒数第2、3行,里面提到第14章所实现的线程在退出时只会将线程栈释放、而不会释放该线程所分配的堆空间,这是否会造成内存泄漏?[郝]:如果用户线程在每次调用malloc后,都会调用free来释放它,那么就不会有内存泄漏。
922 0
|
Unix
《UNIX技术内幕》勘误及问题解答_25
From: quntmec@hotmail.com To: qf.hao@hotmail.com Subject: RE: 关于《UNIX技术内幕》的勘误及遇到的问题_25 Date: Fri, 17 Feb 2012 11:08:10 +0800 郝先生, 对...
785 0