求大大们讲解一下杨季文老师第10章保护模式T10-5.asm看不懂的几个地方,多谢 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 77.78%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs7
本版专家分:27185
Blank
红花 2019年2月 其他开发语言大版内专家分月排行榜第一
2019年1月 Delphi大版内专家分月排行榜第一
2018年8月 Delphi大版内专家分月排行榜第一
2018年7月 Delphi大版内专家分月排行榜第一
2018年4月 Delphi大版内专家分月排行榜第一
2018年3月 Delphi大版内专家分月排行榜第一
Blank
黄花 2016年11月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2011年10月 其他开发语言大版内专家分月排行榜第三
2010年8月 其他开发语言大版内专家分月排行榜第三
2007年5月 其他开发语言大版内专家分月排行榜第三
Bbs3
本版专家分:909
Bbs1
本版专家分:0
80x86汇编语言程序设计教程(杨季文).pdf
80x86汇编语言程序设计教程(杨季文)
80x86汇编语言程序设计(杨季文)pdf
80x86汇编语言程序设计教程(杨季文)
80x86汇编语言程序设计教程 杨季文
80x86汇编语言程序设计教程 杨季文
杨季文《80X86汇编语言程序设计教程全书
80X86汇编语言程序设计教程 杨季文《80X86汇编语言程序设计教程》全书 值得精读。。
80X86汇编语言程序设计教程(杨季文).part1
本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
杨季文 《80X86汇编语言程序设计教程》
王爽的书对于入门者非常有用,但杨季文的这本书同样是经典之作。最值得一提的是,学汇编最终都会绕到<em>保护模式</em>。而此书对于<em>保护模式</em>方面的知识介绍地相当彻底!剩下的就不多说了。rnrn下载地址:rn [url=http://download.csdn.net/source/2605816][/url]
80x86汇编语言程序设计教程(杨季文)
本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,<em>讲解</em>汇编语言程序设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地<em>讲解</em>了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
杨季文等著80x86汇编语言程序设计
杨季文等著,钱培德审 80x86汇编语言程序设计 清华大学出版
80X86汇编语言程序设计教程(杨季文).part4
本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
( 80X86汇编语言程序设计教程{杨季文}.rar )
本书分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台, 以MASM和TASM为汇编器,介绍汇编语言的有关概念,<em>讲解</em>汇编语言程序设计技术。第二部分是提 高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关 概念,系统和详细地<em>讲解</em>了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三 部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌 握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了 解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的 参考书。
杨季文《80X86汇编语言程序设计教程》02
汇编语言编程方面 很好的书籍。。。 是值得去细读,精读的书
杨季文《80X86汇编语言程序设计教程》03
汇编语言编程方面 很好的书籍。。。 是值得去细读,精读的书 杨季文《80X86汇编语言程序设计教程》01
80x86汇编语言程序设计教程(杨季文)
80x86汇编语言程序设计教程,网上广泛流传的“中山大学汇编语言视频教程”就是用的这本书。
80x86汇编语言程序设计(杨季文等编著)
公认的超经典的一部汇编语言教程 杨季文等编著 很多大学用其作为教材 格式:pdf
杨季文《80x86汇编语言程序设计教程》
汇编语言另一本经典教材。如果在看完王爽《汇编语言 第2版》之后再看此书(带目录的PDF档),效果更佳。 另附上其他<em>几个</em>值得下载的好资源(根据需要选择下载): 1).方便实用的汇编IDE工具——Win-Masm v2.2 http://download.csdn.net/source/2589840 2).王爽《汇编语言 第2版》第1卷(共2卷) http://download.csdn.net/source/2590172 3).王爽《汇编语言 第2版》第2卷(共2卷) http://download.csdn.net/source/2590189 4).王爽《汇编语言 第2版》习题答案 http://download.csdn.net/source/2590241
80X86汇编语言程序设计教程(杨季文).part3
本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
80X86汇编语言程序设计教程(杨季文).part2
本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
80x86(杨季文)一书,实例1。
rn.386PrnINCLUDE 386SCD.ASMrn rnECHOCH MACRO asciirn MOV AH,2rn MOV DL,asciirn INT 21Hrn ENDMrnrnrnDSEG SEGMENT USE16rnGDT LABEL BYTErnDUMMY DESCRIPTOR<>rnrnCODE DESCRIPTORrnCODE_SEL=CODE-GDTrnrn ;DATAS DESCRIPTORrn ;DATAS_SEL=DATAS-GDTrnrn ;DATAD DESCRIPTORrn ;DATAD_SEL=DATAD-GDTrnrnGDTLEN=$-GDTrnVGDTR PDESCrnrn ;BUFFERLEN=256rn ;BUFFER DB BUFFERLEN DUP(0)rnDSEG ENDSrnrnrnrnCSEG SEGMENT USE16rn ASSUME CS:CSEG,DS:DSEGrnSTART:rn MOV AX,DSEGrn MOV DS,AXrn MOV BX,16rn MUL BXrn ADD AX,OFFSET GDTrn ADC DX,0rn MOV WORD PTR VGDTR.BASE,AXrn MOV WORD PTR VGDTR.BASE+2,DXrnrn MOV AX,CSrn MUL BXrn MOV CODE.BASEL,AXrn MOV CODE.BASEM,DLrn MOV CODE.BASEH,DHrnrn ;MOV AX,DSrn ;MUL BXrn ;ADD AX,OFFSET BUFFERrn ;ADC DX,0rn ;MOV DATAD.BASEL,AXrn ;MOV DATAD.BASEM,DLrn ;MOV DATAD.BASEH,DHrn LGDT VGDTRrn CLIrn CALL ENABLEA20rn MOV EAX,CR0rn OR EAX,1rn MOV CR0,EAXrn JUMP16 ,rnVIRTUAL:rn ;MOV AX,DATAS_SELrn ;MOV DS,AXrn ;MOV AX,DATAD_SELrn ;MOV ES,AXrn ;CLDrn ;XOR SI,SIrn ;XOR DI,DIrn ;MOV CX,BUFFERLEN/4rn ;REPZ MOVSDrn MOV EAX,CR0rn MOV EAX,0FFFFFFFEHrn MOV CR0,EAXrn JUMP16,rnREAL:rn CALL DISABLEA20rn STIrn ;MOV AX,DSEGrn ;MOV DS,AX rn rn MOV AH,4Crn INT 21HrnrnrnENABLEA20 PROCrn PUSH AXrn IN AL,92Hrn OR AL,2rn OUT 92H,ALrn POP AXrn RETrnrnENABLEA20 ENDPrnrnDISABLEA20 PROCrn PUSH AXrn IN AL,92Hrn AND AL,0FDHrn OUT 92H,ALrn POP AXrn RETrnDISABLEA20 ENDPrnrnrnrnrnTOASCII PROCrn AND AL,0FHrn ADD AL,90Hrn DAArn ADC AL,40Hrn DAArn RETrnTOASCII ENDPrnrnCSEG ENDSrn END STARTrnrnrn功能是从实模式进入<em>保护模式</em>,什么也不做再回到实模式,可是每次执行到MOV CR0,EAX时机器总是rn重启(CR0:PG=0,PE=1,ET=1)GDT的装载经调试是正确的,不知是哪里不对。rnrnrnrnrn ;文件名:386SCD.ASMrn ;内 容:符号常量等的定义(用于<em>保护模式</em>)rn ;详细注释见80x86汇编(杨季文)一书,p403页rnrn;..........................rn;存储段和系统段描述符rnDESCRIPTOR STRUCrnLIMITL DW 0rnBASEL DW 0rnBASEM DB 0rnATTRIBUTES DW 0rnBASEH DB 0rnrnDESCRIPTOR ENDSrn;.........................rn;门描述符rnGATE STRUCrnOFFSETL DW 0rnSELECTOR DW 0rnDCOUNT DB 0rnGTYPE DB 0rnOFFSETH DW 0rnGATE ENDSrn;.........................rn;伪描述符rnPDESC STRUCrnLIMIT DW 0rnBASE DD 0rnPDESC ENDSrn;.........................rnrn;TSS任务状态段内容rnTASKSS STRUCrnTRLINK DW ?,0rnTRESP0 DD ?rnTRSS0 DW ?,0rnTRESP1 DD ?rnTRSS1 DW ?,0rnTRESP2 DD ?rnTRSS2 DW ?,0rnTRCR3 DD ?rnTREIP DD ?rnTREFLAG DW ?,?rnTREAX DD ?rnTRECX DD ?rnTREDX DD ?rnTREBX DD ?rnTRESP DD ?rnTREBP DD ?rnTRESI DD ?rnTREDI DD ?rnTRES DW ?,0rnTRCS DW ?,0rnTRSS DW ?,0rnTRDS DW ?,0rnTRFS DW ?,0rnTRGS DW ?,0rnTRLDT DW ?,0rnTRFLAG DW 0rnTRIOMAP DW $+2rnTASKSS ENDSrn;..........................rn;存储段描述符类型值说明rnATDR =90HrnATDW =92HrnATDWA =93HrnATCE =98HrnATCER =9AHrnATCCO =9CHrnATCCOR =9EHrn;系统段描述符和门描述符类型值说明rnATLDT =82HrnATTASKGAT =85HrnAT386TSS =89HrnAT386CGAT =8CHrnAT386IGAT =8EHrnAT386TGAT =8FHrn;DPL和RPL值说明rn;..........................rnrnDPL1 =20HrnDPL2 =40HrnDPL3 =60HrnRPL1 =01HrnRPL2 =02HrnRPL3 =03HrnIOPL1 =1000HrnIOPL2 =2000HrnIOPL3 =3000Hrn;.............................rnrnrnrn;其它常量说明rnD32 =4000HrnTIL =04HrnVMFL =0002HrnIFL =0200Hrn;.............................rnrn;段间转移及段间调用宏rnJUMP32 MACRO selector,offsetvrn DB 0EAHrn DW offsetvrn DW 0rn DW selectorrn ENDMrnCALL32 MACRO selector,offsetvrn DB 09AHrn DW offsetvrn DW 0rn DW selectorrn ENDMrnrnJUMP16 MACRO selector,offsetvrn DB 0EAHrn DW offsetvrn DW selectorrn ENDMrnCALL16 MACRO selector,offsetvrn DB 9AHrn DW offsetvrn DW selectorrn ENDMrnrn;................................ rnrn rnrn
80X86汇编语言程序设计教程 杨季文.pdf
80X86汇编语言程序设计教程 以8086/8088为基础,以80386为重点,面向Pentium等新一代微处理器,<em>讲解</em>汇编语言程序设计的一般概念、基本技术和常用技巧
杨季文--80x86汇编语言程序设计教程
杨季文--80x86汇编语言程序设计教程,,学习汇编的好资料.。。。。。
杨季文《80X86汇编语言程序设计教程》04
杨季文《80X86汇编语言程序设计教程》04 值得推荐。。 值得精度
80x86汇编语言程序设计教程 杨季文.pdf
80x86汇编语言程序设计教程 杨季文.pdf80x86汇编语言程序设计教程 杨季文.pdf80x86汇编语言程序设计教程 杨季文.pdf80x86汇编语言程序设计教程 杨季文.pdf
杨季文书上的一个疑问
在78页上有一个例子:rnARRAY DW 1,2,$+4,3,4,$+4rn书上画的内存镜像为:rn若ARRAY为100H,则rn100H:01rn 00rn102H:02rn 00rn104H:08 (怎么会是0008H?我想是0108H)rn 00rn106H:03rn 00rn108H:04rn 00rn10AH:0E (同理,应为010EH)rn 00
一个小问题(杨季文80X86)
;子程序名:STRCMPrn;功能:比较字符串是否相同rn;入口参数:DS:SI=字符串1首地址段值:偏移rn; ES:DI=字符串2首地址的段值:偏移rn;出口参数:AX=0表示两字符串相同,否则表示字符串不同rn;说明:设字符串均以0为结束标志rnSTRCMP PROCrn CLDrn PUSH DIrn XOR AL,AL ;先测一个字符串的长度rn MOV CX,0FFFFHrnNEXT: SCASBrn JNZ NEXTrn NOT CX ;至此CX含字符串2的长度(包括结束标志)[这是书上原话,可我找不出上面CX发生了什么变化?]rn POP DIrn REPZ CMPSBrn MOV AL,[SI-1]rn MOV BL,ES:[DI-1]rn XOR AH,AHrn MOV BH,AHrn SUB AX,BXrn RETrnSTRMP ENDP
80x86汇编语言程序设计教程-杨季文
80x86汇编语言程序设计教程-杨季文
杨季文《80X86汇编语言程序设计教程》01.rar
<> 作者 杨季文 - C/C++ - C... 汇编语言类好书
80x86汇编语言程序设计教程.pdf ,杨季文
《80X86汇编语言程序设计教程》扬季文写的,可以作为汇编的入门教程,尤其是386以后的部分写的比《IBM-PC汇编语言程序设计》好多了。
杨季文《80X86汇编语言程序设计教程》全书
80X86汇编语言程序设计教程 杨季文《80X86汇编语言程序设计教程》全书 值得精读。。
看了杨季文汇编的问题
p 2.2.2 存储器的分段 中说到rnrn"逻辑段与逻辑段可以相连, 也可以不相连, 还可以部分重叠"rnrn对于这个东西我心中一直有个疑问! 那如果代码段和数据段重叠后, 不会冲突吗? 难道一个rn内存地址一边存代码 一边存数据? 我一直想不通这东西!
杨中科老师.net视频1-13季
第1季C#编程基础,第2季C#面向对象基础,第3季WinForm基础,第4季SQL从入门到提高,第5季ADO.Net,第6季HTML,第7季JavaScript,第8季Dom,第9季JQuery,第10季asp.net基础,第11季asp.net中级,第12季asp.net高级,第13季ajax
200分求:杨季文《80x86汇编语言程序设计教程》
200分求:杨季文《80x86汇编语言程序设计教程》rnxianren2440@sina.com rn另开贴给分,说话算话!
哪位老师讲解一下
这个程序用来输出一个等边三角形:rn#include rnusing namespace std;rnvoid main()rnrnint n;rnprintf("Input n : ");rncin>>n;rnfor (int i=0;i
杨中科.net13季
杨中科.net13季
大大们帮忙
给了一任务,现有很多ppt和flash课件,想整合在一个网站上面,flash是加过壳的,但是我没做过这方面的东西,还请大家给点意见以及好的资料,先谢谢了
如何入门dos保护模式编程?__ 读杨季文《80x86汇编语言程序涉及教程》的疑惑
读杨季文《80x86汇编语言程序涉及教程》到第十章。rnrn<em>保护模式</em>的第一个实例难以继续了。debug无法跟踪调试。遇到:rnmov eax,cr0rn就不行了。虚拟机的98环境下到这儿就重启。rnrn书中对于工具方面有如下说明:rn“在以80386微处理器的硬件平台和dos为操作系统的软件平台上,可以调试运行本章列出的实例rn。请用tasm或者masm汇编这些实例,用tlink连接(部分实例需要带32位连接选项“/3”)。”rnrn(1)如果要用masm5,也要用tlink连接吗?这两个不同公司的能合作吗?rnrn但没有调试工具的任何说明。问<em>一下</em>经历过dos<em>保护模式</em>汇编学习的高手,rn(2)刚开始学这块,如果要用masm,相应的连接工具,调试工具究竟用什么(包括版本)?rnrn
老师ATL讲解代码.rar
杨<em>老师</em>ATL<em>讲解</em>代码.rar 本人资料,全部免分,欢迎共享,呵呵。
对杨季文书中关于指令预取进/出保护模式的一点修正
在P.380,他说是“在实方式下被预取,在保护方式下被执行”。其实着不太正确。着跟预取没有多大的关系。要知道更多的内容请看cnix版我转贴的贴子《如何在实模式下存取4G》。我现在来说说从进/出<em>保护模式</em>究竟发生了什么:rn在实模式时rnLGDT fword ptr vgdtrrnLGDT把vgdtr处6Bytes的内容装入GDTR中,记住,仅仅是装入。rn然后打开A20地址线,这是为了能存取1M以上的内存,和进不进<em>保护模式</em>没有关系,也就是说不打开A20也能进入<em>保护模式</em>,只不过这样的话在<em>保护模式</em>下就不能访问1M以上的内存了(今天的有些电脑不用打开A20就能访问1M以上的内存)。rn然后把CR0寄存器的PE位置1,这是告诉系统打开<em>保护模式</em>。说到这边,我们要来说一说shadow cache的问题,shadow cache的layout可以看P.388。在实模式下的时候有些位是固定的,不可变的。大家还记的实模式下取址的方法吗?对,段寄存器*16+offset。是直接有MMU这样做后取址的吗?不是,实际上是:当你往段寄存器(比如说cs)送值后,MMU会同时把rnCS*16的值放入到CS的shadow cache中。rn这样以后只要不改变CS的值,那么,在同一段代码段中的寻址将是offset+(shadow cache中的段基址部分)。明白了吗?好,我们再回到上面。rnmov eax,cr0rnor eax,1rnmov cr0,eaxrn这段代码究竟做了什么呢,其实他做的是开放段寄存器shadow cache的每个位,也就是每个位的值都能修改了(而在实模式下则只有一部分的位能被修改)。还有就是声明已进入<em>保护模式</em>了。记住,这时候在shadow cache中的内容没有变,还是实模式下的地址。现在我们再来说说<em>保护模式</em>下的寻址。<em>保护模式</em>下寻址其实和实模式下是一样的,也是offset+(shadow cache中的段基址部分)。这样就可以理解为什么把cr0的PE位置1后还能执行后面的这句JUMP指令。因为把cr0的PE位置1虽然rn使的系统进入了<em>保护模式</em>。但因为在shadow cache中的内容还是实模式下的内容,所以才能在<em>保护模式</em>下执行实地址处的指令。然后呢!我们来看看jump指令做了什么?rnjump selector, offsetrn对吧。这个指令做了什么呢?他的意思就是要跳到选择子为selector的段的偏移为offset处,执行那里的指令。那究竟CPU做了什么呢?因为他要跳到selector,offset。又因为现在是在<em>保护模式</em>下,所以rnMMU根据selector从GDT(知道LDGT的作用了吧)来找到段的真实段基址和偏移,然后把它放入到相应段的shadow cache中。接着MMU再把offset和(shadow cache中的段基址部分)相加。这样就得到了下一个指令的地址。rn同理,从<em>保护模式</em>出来时用rnmov eax,cr0rnand eax,0xFFFFFFFFrnmov cr0,eaxrn来宣告进入实模式(以后的寻址将采用实模式方式)和是各个段的shadow cache中rn一部分位固定。然后通过执行rnjump cs,offset来把cs*16的值装入shadow cache中。rn好了,差不多说完了,可能说的不太清楚,还请各位原谅。
《80x86汇编语言程序设计教程-杨季文》保护模式例子的问题(就是$的问题)
主要是 $ 的问题,在向段描述符的界限初始化时,masm611会提示 A2071: initializer magnitude too large for specified size , 说是初始化宏时数值太大,但用 ($-标号) 后就可以了,但从机器码来看 $ 与 ($-标号) 的值是一样的。奇怪. 我想碰到这个问题的朋友肯定不少,但搜索引擎又不能搜索 $ 这个符号,“我地个娘来,我很痛心啊。”rnrn我怀疑这可能是masm611的一个bug,所以季文同志开始就说要用 tasm 来汇编。rn“你让我很失望啊。”
除了杨季文的,还有别的讲保护模式下汇编语言的书吗?
杨季文的书对<em>保护模式</em>讲得不是很详细,有很多细节没有讲清,因此理解上有困难。请问还有别的讲<em>保护模式</em>下的汇编语言的书吗?rnrn谢谢!rn
杨季文、钱培德的保护模式下编程看得累死了
搞汇编有一阵子了,但是原来都是实模式,市面上有没有比我看的杨季文、钱培德的<em>保护模式</em>下编程《80x86汇编语言程序设计》更好一些子的书了,好像市面上很难找到吧,各位兄台推荐<em>一下</em>
80x86汇编语言程序设计教程课后答案(杨季文)(清华大学版)
80x86汇编语言程序设计教程课后答案(杨季文)(清华大学版)
80X86汇编语言程序设计教程(杨季文)习题答案(前三章)
80X86汇编语言程序设计教程(杨季文)习题答案(前三章)80X86汇编语言程序设计教程(杨季文)习题答案(前三章)
哪里有 杨季文《80X86汇编语言程序设计教程》源代码下载?
rt
谁需要杨季文的《80x86汇编语言程序设计教程》?
谁需要杨季文的《80x86汇编语言程序设计教程》?请到www.netyi.net下载,刚刚上传的!
请教杨季文8086汇编书中一个例子的问题
在362面,例2:一个接收最大为32表示的无符号整数的子程序rnrn出口参数:eax=接收到的无符号整数rnbl=0 接收到的字符串为空rn......................rnrn用int21h 10号的功能接收rn接收后。rnrn;去掉前导空格rninc ecx ;ecx是字符串的长度rngval1: dec ecxrn inc edx ;edx是字符串接收到的数开始的偏移rn rn cmp byte ptr [edx]," "rn jz gvla1rnrn mov bl,0rn jecxz end 这段的程序意思是:若字符串全是空格,当比较到最后的回车键时,不相等,然后设置为blrnrn 这时,ecx一定是为0,就跳转到最后rnrnrn;去掉尾部空格rnrngval2: cmp byte ptr [edx+ecx-1]," " ;假设第一个数就不是空格,那么比较字符串最后一个值,是回车键之前的那个rn rn loopz gval2 ;若相等且ecx不为0则一直比较rnrn setnz al ;跳出循环的两种情况:若是不相等跳出的,设置al为1rn 若是一直相等,只是ecx为0,置al为0rnrn add cl,al rnrn [color=#3366FF] jecxz end[/color] 这一句是必要的吗? 因为运行到这里,已经不可能是空字符串了, 前面是因为有不为空格的字符存在时,才可能执行到这个<em>地方</em>来的,不解?rnrnrnrnrnrn;处理可能的数串
80x86汇编语言程序设计教程(杨季文)全教程
书内容有:绪论、8086/8088寻址方式和指令系统、汇编语言及其程序设计初步、子程序设计和DOS功能调用、输入输出与中断、简单应用程序的设计、高级汇编语言技术、模块化程序设计技术、80386程序设计基础、保护方式下的80386及其编程、80486及Pentium程序设计基础、实验指导
80x86汇编语言程序设计教程[杨季文.98年版.清华大学出版社]
本书内容有:绪论、8086/8088寻址方式和指令系统、汇编语言及其程序设计初步、子程序设计和DOS功能调用、输入输出与中断、简单应用程序的设计、高级汇编语言技术、模块化程序设计技术、80386程序设计基础、保护方式下的80386及其编程、80486及Pentium程序设计基础、实验指导。
关于段界限(limit)的一个问题(杨季文书中的)
在364页,为什么limit是1B-1M或4K-4G,而不是0B-1M或0K-4G,如果你要告诉我可以用rn后面那公式算出来,那我想问你那公式是哪来的
请问哪有周明德,杨季文的电子书下载?
可惜呀,很多都已经绝版了.
觉得杨季文的教材有一个错误?
最近在看保护方式下的中断实例(10.7.4,T10-6.ASM),觉得教材有个错误,该程序目的是在屏幕显示8秒倒计时。手段是通过时钟中断源每秒产生的18次中断。首先设置了一个count(初始值为18)和value(初始值为8),同时重写了的8h中断处理程序,每次调用都会在屏幕显示value的值,并判断count是否为0,为0则重置count为18并把value减一,否则只有count减1。运行时屏蔽了其他外部中断。但是有个问题,重写的8h处理程序并没有开中断的代码,而cpu在处理中断时自动关中断,那么8h程序就只能运行一次啊,不能重复调用,所以我觉得应该加上开中断的代码。
80X86汇编语言程序设计教程_杨季文_高清中文版
80X86汇编语言程序设计教程 基本信息 作者: 杨季文 出版社:清华大学出版社 ISBN:9787302029014 上架时间:2013-1-28 出版日期:2013 年1月 开本:16开 页码:595 版次:1-21 所属分类:计算机 > 软件与程序设计 > 汇编语言/编译原理 > 汇编语言程序设计 内容简介 书籍 计算机书籍 《80X86汇编语言程序设计教程》分为三部分。第一部分是基础部分,以8086/8088为背景,以DOS和PC兼容机为软硬件平台,以MASM和TASM为汇编器,介绍汇编语言的有关概念,<em>讲解</em>汇编语言程序设计技术。第二部分是提高部分,以80386为背景,以新一代微处理器Pentium为目标,细致和通俗地介绍了保护方式下的有关概念,系统和详细地<em>讲解</em>了保护方式下的编程技术,真实和生动地展示了保护方式下的编程细节。第三部分是上机实验指导。 本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。 作译者   本书的第一部分适合初学者,可作为学习汇编语言程序设计的教材。本书的第二部分适合已基本掌握8086/8088汇编语言的程序员,可作为学习保护方式编程技术的教材或参考书,也可作为其他人员了解高档微处理器和保护方式编程技术的参考书,还可作为程序员透彻地了解Windows程序设计技术的参考书。
请问那里有 杨季文 《80X86汇编语言程序设计教程》 下载?
谢谢
讨论:大家觉得杨季文的《80X86汇编语言程序设计教程》咋样
现在开始学习<em>保护模式</em>下汇编啦。 有看过的朋友, 给点心得体会啥的~多些啦~
杨季文的汇编教材与intel相比如何?
我熟悉C++,学汇编主要不是为了写汇编程序,是为了解cpu运行、windows原理、加密和破解。rnrn之前看过王爽那本,比较简单。rn又基本看懂了谭毓安那本,弄懂了C函数编译之后的样子。<em>保护模式</em>也大体看懂,但这个书讲<em>保护模式</em>用的是softice,在vista不能用,不能实践。所以对<em>保护模式</em>还有些不踏实。rnBrey《intel 处理器》英文版看到了第八章。rnrn还想看本比较详解<em>保护模式</em>、PE文件格式、windows加载运行exe文件过程的书。最好结合Windbg<em>讲解</em>的。rnrn网上有很多推荐杨季文的汇编教材,也看到说《intel汇编语言程序设计》不错,rn请看过的朋友介绍下。rnrnrnrn
10章GUI第10章GUI第10章GUI第10章GUI第10章GUI
第<em>10章</em>GUI第<em>10章</em>GUI第<em>10章</em>GUI第<em>10章</em>GUI第<em>10章</em>GUI
《80x86汇编语言程序设计教程》杨季文编是那个出版社的??
清华的嘛?
杨季文的8086汇编语言程序设计用什么调试啊
<em>保护模式</em>的 我有BOCHS rn不知道该用什么工具
杨季文那本 80X86汇编语言程序设计里 分页管理机制的问题
看了分页管理机制那节,大概可以理解。但演示实例代码有很多不理解 希望大家给予指教rn1, PhVB_AD=0B8000H 提示 好象是超出了范围 rn2,在设置页表项的那两几段代码实在是搞不清楚 所以后面的代码 也没有看rn希望那位大侠能给小弟指点 一 二
简单的一小段代码,有看不懂地方,求讲解
重写方法rn[code=Java]rnpublic class Test rnrn Test test;rnrn @Overridern public int hashCode() rn final int prime = 31;rn int result = 1;rn result = prime * result + ((test == null) ? 0 : test.hashCode());rn return result;rn rnrn @Overridern public boolean equals(Object obj) rn if (this == obj)rn return true;rn if (obj == null)rn return false;rn if (getClass() != obj.getClass())rn return false;rn Test other = (Test) obj;rn if (test == null) rn if (other.test != null)rn return false;rn else if (!test.equals(other.test))rn return false;rn return true;rn rnrn[/code]rnrn问:rn[code=Java]if (obj == null)rn return false;[/code]这个有什么用?如果test是null,obj也是null不就是true了吗?(只是假设,这个时候用equals会异常)rn[code=Java]rn Test other = (Test) obj;rn if (test == null) rn if (other.test != null)rn return false;rn else if (!test.equals(other.test))rn return false;rnrn[/code]这段...我不知道它是在比较什么...rnrn各位见笑了,求逐行<em>讲解</em>.rnrn另外重写hashcode的代码根本就<em>看不懂</em>.....
谁给我讲解一下KMP算法,多谢
书上的KMP算法<em>看不懂</em>,高人给我讲讲。
看不懂几个地方,请指教!
[code=C/C++]typedef void(*TRAY_CALLBACK_T)(TRAY_MSG_ET msg,TRAY_STATUS_ET status);rnrntypedef enumrnrn TRAY_CPU_STATUS_ERROR_E = 0,rn TRAY_CPU_STATUS_OK_E = 1rnTRAY_MSG_ETrnrntypedef enumrnrn TRAY_CPU_STATUS_ERROR_E = 0,rn TRAY_CPU_STATUS_OK_E = 1rnTRAY_STATUS_ETrnrnvoid TRAY_Init(TRAY_CALLBACK_T cb) //问题1:这里的cb 是什么啊rnrn;rnrnrnvoid NPM_Traycb(TRAY_MSG_ET msg,TRAY_STATUS_ET status)rnrn;rnrnrnTRAY_init((TRAY_CALLBACK_T)NPM_Traycb); rn//问题2 :TRAY_Init这个函数的参数写法有没问题?rnrn//如果定义:rnrnstatic TRAY_CALLBACK_T TRAY_cb; rnrn//问题3:这句是什么意思?rnrn[/code] rn总的是3个问题,谢谢指教啊
存储过程中有几个地方看不懂!请教
create proc demorn @czydm char(4), rn @czymm varchar(20), rn @ksrq char(8),rn @jsrq char(8),rn @bmdm char(2),rn @xmdm varchar(255),rn @yybdm varchar(255),rn @nbzjzh varchar(255)rnrn with encryption as--是什么意思?rnrn set nocount onrnrn select errorcode = 0, errormsg = '测试成功'rnrn select *, 1 as jsrn from table(@p_f_czydm, @p_bmdm, @p_yybdm, @p_xmdm, @p_nbzjzh)--为什么能在表名后面加参数?rnrn请教!rnrn
大大讲解个例题
[code=Java]rnimport java.util.ArrayList;rnrnrnpublic class Test rn rn static void print(ArrayList al)rn rn al.add(2);rn System.out.println(al.get(0));rn System.out.println(al.get(1));rn System.out.println();rn rn rn al=new ArrayList();rn al.add(3);rn al.add(4);rn rn System.out.println(al.get(0));rn System.out.println(al.get(1));rn System.out.println();rn rn rn public static void main(String args[])rn Test test=new Test();rn ArrayList al=new ArrayList();rn al.add(1);rn rn print(al);rn for(int i=0;i
<>上的原代码,小弟有几个地方看不懂
#include rn#include rnusing namespace std;rnclass iStackrnrn public :iStack(int capacity):_stack(capacity),_top(0)//什么意思?,最好详细点。rn bool pop(int &value);rn bool push(int value);rn bool empty();rn bool full();rn void display();rn int size();rn rn private:rn vector_stack;rn int _top;rn;rninline int iStack::size()rnrn return _top; rnrninline bool iStack::empty()rnrn return _top ? false :true;rnrninline bool iStack::full()rnrn return _top<<
大大们指点一下几个常识,跪谢~~
我想给我们学校写一个程序,是这样的:rn第一。我们学校上网需要到固定的页面上输入学号,密码才能连接外网上网,我想写一个类似电信上网的登陆程序,只要在这个上面输入学号密码就可以连接。这个东西实现起来难不难,请<em>大大</em>们给我一点方向,和一些核心的代码,让俺学习学习。rn第二。我还想在这个程序里加一个功能,就是检测网路故障,因为偶是学校网管,有些同学动不动大半夜就来喊我们修故障,其实只是一些简单的原因,不知道怎么下手,其实我想过一个比较丢人的想法,就是调用ping,tracert这些命令,把他们的结果写到文本里,然后用程序分析这些文本。。。。我怕被<em>老师</em>发现,他们会鄙视我。。可是我对于网络编程不太了解。。。。不对,可以说没有入门。。。除了上边这个蠢点的方法,其他的方法有些什么?rn rn希望<em>大大</em>们可以帮助小盆友<em>一下</em>下。。。我sdk,mfc还算熟悉除了网络编程
这是怎么回事,求大大们解答,谢谢大大们了
三个变量,用cin从键盘输入,为什么我只能输入两次,而且输入37、19时,为什它把3、7、1分别存储到了那个变量里呢?[img=https://img-bbs.csdn.net/upload/201610/10/1476058143_665901.png][/img][img=https://img-bbs.csdn.net/upload/201610/10/1476058155_251843.png][/img]
一下sql文
table1:rnrn A Brn 001 a1rn 001 a2rn 001 a3rn 001 a1rn 001 a1rn 002 a5rn 002 a5rn 002 a6rn 003 a7rn 004 a8rn 004 a8rnrn请问SQL文该怎写 可以得到<em>一下</em>的结果:rn A Brn 001 3rn 002 2rn 003 1rn 004 1rnrn很急 拜托了啊!!
请指点几个程序员必去的地方!多谢!
-
这段代码有些地方看不懂,请教一下
rnrnrnrn第四段中的encodeURIComponent(b)和encodeURIComponent(a)是什么意思,第五段中的m和n两个正则表达式是什么意思,第六段中的问号和冒号是什么意思,小第是初学者,请大虾们指教.
大大们帮我了,问几个.net的基本问题:
1:数据库被“置疑”是什么原因?例如:infocom(置疑)--无项目rn2:winform中怎么比对数据呢?取出登陆框中的信息。例如:rn private void botton1_click(object sender,eventargs e)rn string uid=this.textbox1.text.tostring();rn if(uid="admin")message.box("sss")rn elsemessage.box("ccc")rn rn 问题是:不管textbox1中输入什么,都只执行elsemessage.box("ccc")这句。rn3:winform打开窗口,怎么在打开一个新窗体后把上一个窗体关闭呢?rn (new form2()).showdialog();rn application.run();rn4:这个问题是怎么回事呢?怎么解决?rn rn“/”应用程序中的服务器错误。rn--------------------------------------------------------------------------------rnrn运行时错误 rn说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细rnrn详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 标记。然后应将此 标记的“mode”属性设置为“Off”。rnrnrnrnrnrn rn rn rnrn rnrn注释: 通过修改应用程序的 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。rnrnrnrnrnrn rn rn rnrn rnrn rn
老师的相关问题。
c语言头文件引入方式 (1)#include&amp;lt;stdio.h&amp;gt; (2)#include&quot;stdio.h&quot; 方式(1),仅仅在标准库头文件中进行匹配。 方式(2),编译器现在工程目录下进行匹配,如果么有再转到标准库头文件中进行匹配。   联合体和结构体的区别 结构和联合有下列区别:   1) 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合转只存放了...
老师的com资料
杨<em>老师</em>的com资料
老师6班测试
#include #include #include using namespace std; int main() { int n; char c1,c2; scanf("%d %c %c",&n,&c1,&c2); for(int i=1;in;i++) {for(int j=1;jn;j++) { if(i==j||i==1||i==n||j==1||j==n||i+j==n+1
老师:请帮忙
int Countlevel(node*T,int e) //e表示什么rn static int count=1;rn if(T)rn if(countleft,e+1);rn Countlevel(T->right,e+1);rn rn return count;rn
老师的课(JSU-ZJJ)
题目描述 杨<em>老师</em>是一位优秀的算法课教师,他非常注重学生的动手能力。因此,他通过在judge online平台上布置作业来检查学生的学习情况,并依据做题情况给定学生的成绩排名。 杨<em>老师</em>给定了一个最少的做题数目t,学生必须完成至少t的题的数目,然后他给每一个学生做的题目打了一个平均分。最终排名的规则是,必须完成t个以上的数目,然后按照平均分排名,分数相等则按姓名的字典序排名。现在给定一个数字m,请列出...
老师com+学习指南
COM+学习指南 微软在成功地推出 Windows 3.1 后,开始垂涎桌面办公自动化软件领域。微软的 OFFICE 开发部门,各小组分别独立地开发了 WORD 和 EXCEL 等软件,并采用“自定义结构”方式,对文件进行存储。在激烈的市场竞争下,为了打败竞争对手,微软自然地产生了一个念头------如果我能在 WORD 程序中嵌入 EXCEL,那么用户在购买了我 WORD 软件的情况下,不就没有必要再买 LOTUS-123 了吗?!“恶毒”(中国微软的同志们看到了这个词,不要激动,我是加了引号的呀)的计划产生后,他们开始了实施工作,这就是 COM 的前身 OLE 的起源(注3)。但立刻就遇到了一个严重的技术问题:需要把 WORD 产生的 DOC 文件和 EXCEL 产生的 XLS 文件保存在一起。
老师的游戏
链接:https://www.nowcoder.com/acm/contest/116/B来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld题目描述杨<em>老师</em>给同学们玩个游戏,要求使用乘法和减法来表示一个数,他给大家9张卡片,然后报出一个数字,要求大家用表达式的形式来表示出这个数 100 可以表示为这...
10章-无线网络开发第10章-无线网络开发第10章-无线网络开发第10章-无线网络开发第10章-无线网络开发
第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发第<em>10章</em>-无线网络开发
10章
10.1 立方体纹理 10.1.3 反射     书上写通过入射光线的方向和表面法线的方向来计算反射方向,再利用反射方向对立方体纹理采样。应该是通过视线方向和表面法线的方向来计算入射光线的方向,再用入射光线对立方体纹理采样吧。
哪位大大讲解一下DLL剥离技术?
RT
老师课件\MFC部分(杨福林)
杨<em>老师</em>课件MFC部分(杨福林)基于VC6.0开发环境,备用重要资料
求tasm 3.1或3.0,因为学习杨季文老师的书,第十章保护模式的t10-2必须在tasm3.1及以下才能编译,网上找不到
废话不多说,使用高版本的tasm编译不通过,报错如下,[img=https://img-bbs.csdn.net/upload/201906/30/1561862145_696078.png][/img],rn参见该帖子https://bbs.csdn.net/topics/89133的解决办法。<em>多谢</em>好心人,我只剩下32分了,这个贴就给20分吧rn
这句代码是什么意思?求老师讲解
[code=php]rn$search_type = !empty($_REQUEST['store_search_cmt']) ? intval($_REQUEST['store_search_cmt']) : 0;rn[/code]rnrn这句代码是什么意思啊?
老师课件\Oracle部分(杨福林)
杨<em>老师</em>课件\Oracle部分(杨福林)基于VC6.0开发环境,备用重要资料
递归求九宫程序看不懂。有人帮忙讲解一下吗?
递归求九宫程序<em>看不懂</em>。有人帮忙<em>讲解</em><em>一下</em>吗?rn[code=C/C++]rnrn#includern#define MAX 9rnrnint IsElement(int a[], int len, int x);rnvoid F(int a[], int len);rnrnint main()rnrn int a[MAX] = 0;rn /*int i;*/rn rn for (a[0]=1; a[0]< MAX-2 && IsElement(a, len, a[len]))rn rn len++;rn for (a[len]=1; a[len]);rn rn rnrnrnint IsElement(int a[], int len, int x)rnrn int i;rn for (i=0; i
看不懂e文????
在msdn中,搜索标题Building SDK Samples,在此页中有如下部分内容rnBuild an SDK Sample from the Command LinernEach SDK sample comes with a MAKEFILE. MAKEFILEs are designed to run at the command prompt. See Open an SDK Sample Within Visual C++ for information on how to build a project's MAKEFILE from the development environment.rnrnTo build a sample from a command line in a command prompt window rnrn1 Run the Vcvars32.bat file that Visual C++ installs at Microsoft Visual Studio/VC98/bin.rnrnrn2 Change to the subdirectory that contains the MAKEFILE.rnrnrn3 Make sure all existing files that the MAKEFILE will write to are writeable. Use attrib -r *.* to make all files writeable.rnrnrn4 Issue the nmake command. NMAKE will look in the current directory and execute the MAKEFILErn1 2 3 都看懂了,就4<em>看不懂</em>,还有此NMAKE是不是在dos下执行,若在windows下该如何
新手有问题求大大们指点一下
其实应该很简单的问题rnrn就是一个变量rnrn$mac != 1 and 2 and 3 and 4 and 5rnrn$mac == 1 or 2 or 3 or 4 or 5rnrn就是两种假设情况,$mac不等于1到5时 ....rn$mac等于1或者2或者3或者4 或者5时....rnrn但是这个要怎么表达呢?
大大们,帮忙做一下队列在链式存储结构
队列在链式存储结构的建立、插入、删除、查找等运算。这要怎么做啊
超强的存储过程。看不懂。。求解释。多谢~!!!
[code=SQL]------------------------------------------------------------------------rn-- Author: happyflystone rn-- Date : 2009-04-30 16:14:54rn-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86) rn-- Apr 14 2006 01:12:25 rn-- Copyright (c) 1988-2005 Microsoft Corporationrn-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)rn-- rn------------------------------------------------------------------------rnrn-- Test Data: tArnIF OBJECT_ID('tA') IS NOT NULL rn DROP TABLE tArnGornCREATE TABLE tA(Tid INT,name NVARCHAR(3))rnGornINSERT INTO tArnSELECT 1,'aaa' UNION ALLrnSELECT 2,'bbb' UNION ALLrnSELECT 1,'ccc' UNION ALLrnSELECT 2,'ddd' rnGOrn rn-- Test Data: tBrnIF OBJECT_ID('tB') IS NOT NULL rn DROP TABLE tBrnGornCREATE TABLE tB(Tid INT,otherfields NVARCHAR(3))rnGornINSERT INTO tBrnSELECT 1,'xxx' UNION ALLrnSELECT 2,'xxx' rnGOrn--Startrndeclare @s varchar(1000)rnselect @s= isnull(@s+',','')+'[name_'+ltrim(rid) +']= max(case when a.rid ='+ltrim(rid)+' then name else '''' end)'rnfrom (rn select distinct rid rn from (select *,rid = (select count(1) from ta where a.tid = tid and name )rn--Result:rn/*rnrntid otherfields name_1 name_2rn----------- ----------- ------ ------rn1 xxx aaa cccrn2 xxx bbb dddrnrn*/rn--End [/code]rn功能:rn表A: rnTid name rn1 aaa rn2 bbb rn1 ccc rn2 ddd rnrn表B rnTid otherfields rn1 xxx rn2 xxx rnrn希望得到: rn表C rnTid otherfields name1 name2 name3...... rn1 xxx aaa ccc rn2 xxx bbb dddrn现在有个问题:rn【如果在A表中没有某个Tid的项的时候,也能生成表,例如能够生成:】rnTid otherfields name1 name2 name3...... rn1 xxx aaa ccc rn2 xxx rn3 xxx ddd eeernrn【并帮忙解释<em>一下</em>这个存诸过程。。感谢】
Google Android程序设计指南源码 2下载
Google Android程序设计指南源码,资源难求,希望对大家有用 相关下载链接:[url=//download.csdn.net/download/pang040328/2033394?utm_source=bbsseo]//download.csdn.net/download/pang040328/2033394?utm_source=bbsseo[/url]
Windows Embedded从入门到精通系列课程(8):SQL Server Mobile数据库开发下载
在介绍SQL Server Mobile的基本概念和开发运行环境的基础上,详绅论述安装和配置SQL Server CE Mobile开发环境的步骤和方法,幵通过对一个数据库应用程序(AddressBook)开发过程的详绅讲解使读者完整理解和掌握SQL Server Mobile数据库应用程序的开发运行环境、安装配置过程及应用程序开发和调试过程。 相关下载链接:[url=//download.csdn.net/download/wuyonghua01/3125170?utm_source=bbsseo]//download.csdn.net/download/wuyonghua01/3125170?utm_source=bbsseo[/url]
毕业设计说明书~专营连锁店销售管理系统下载
包括产品的前期软件设计 规划 数据库的设计 以及主要功能描述 提供多种表格和图 相关下载链接:[url=//download.csdn.net/download/huyunhaha/4551947?utm_source=bbsseo]//download.csdn.net/download/huyunhaha/4551947?utm_source=bbsseo[/url]
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图
我们是很有底线的