Recent update: 2008-6-5

请问高手一个操作系统问题

56 byte By Novice_wen-新手 at 2008-6-5
请问各位高手,操作系统中的分段的内存管理中的"段"的概念和汇编中的,什么数据段,代码段中的"段"是一个概念么??

只用in,out怎么操作软驱和硬盘?

116 byte By maguarel at 2008-5-24
百度了一下,“软驱,硬盘,驱动,端口号”什么也没找着 没有int13h 没有int21h,只能用in, out时怎么做? int13h转的中断处理程序里相信也是一大堆in, out指令吧?

DES算法源码

30 byte By goodsea-果冻 at 2008-5-20
谁有128位的DES算法的源码,给出链接地址也可以,谢谢了!

小弟出学嵌入式,想问几个问题.

今年开学之后就上大三了。。。 原来一直都是学应用层的开发的。。。 所以对汇编了解甚少。 最近想学学汇编。 但是平台的选择苦了我。 我从这个暑假的我的平台的选择也尝试着从window到了linux,但是失败了。因为没有学过linux.. 我看咱们板块原来有几个问题也是问同样的问题的,好像有个linux+gas?? 不懂??? 想问问大家在linux下的汇编的编译环境是什么? 以及怎么样配置。 谢谢大家了。

请问CodeWarrior下的嵌入汇编

84 byte By shelf-小林 at 2008-4-24
我在CodeWarrior下写嵌入汇编,ASM();编译出错,请问其下面写嵌入汇编的语法是怎样的? 是否支持嵌入汇编,要是编译通过是否还需设置某些东西?谢谢

关于DEC和INC指令

171 byte By dyts0000 at 2008-4-13
DEC和INC指令为什么不影响CF呢?例如AF=0FFFF,若INC AF,为什么CF不变成1了呢? MOV AX,7896H ADD AL,AH ;AL=0EH,AH=78H,CF=1,为什么OF的值不变呢? ADD AH,AL ;AL=0EH,AH=86H,CF=0,OF为什么变成1了呢?

从实模式跳到保护模式,代码段界限小于0ffffh就死循环,我代码段才几十个字节?

376 byte By nxnh-nxnh at 2008-4-12
今天上午编了个读5MB处内存的运行不正常,花了一上午时间才想起来我虚拟机内存就4MB 下午才开始编今天的第二个程序,写的一个实模式跳保护模式的代码一运行就没反应了,以前写过很多也没问题,经过一下午的调试(我不会使bochs,在vmware下调试的),发现从实模式跳到保护模式时目标代码段的描述符中段界限得是0ffffh才行,我改成0fff0也正常,但再往下改点运行时vmware就跳个框说什么栈错误,再改小点运行时就没反应,经过观察死循环是发生在从保护模式跳回实模式段的时候发生的,我的段界限设的要大大超过保护模式代码段的实际大小,而且也没发生段越界异常 今天一天才两个程序,都快晕了,可我还不知...

我现使用的是win2000系统,应该使用哪个开发环境来学习汇编语言?

122 byte By look_and_look-发现 at 2008-4-11
是否要装个win98退到纯dos系统下来学习呢? 我是新手,请大家介绍一下使用什么开发环境来学习汇编语言好,我手头上有一本清华大学的《IBM-PC 汇编语言程序设计》,但是此书好像没有介绍使用什么开发环境,请大家帮帮忙。谢

什么样的汇编语言书才是大家需要的??

236 byte By sagasaga at 2008-4-9
我是出版社的策划编辑,我想了解一下各位都想看到一本怎样的汇编语言的书?希望书里讲些什么内容?可以直接跟帖说出你的想法,有什么建议和意见也都可以提,包括对现有汇编语言书的意见,我会根据你们的要求来找适合的作者创作。 如果有高手想写书,也可以直接和我联系,谈谈你的创作想法。 清华大学出版社 冰冰 电话:010-62770175转4123 电子邮箱:neosaga(at)126.com

求助,如何用汇编来获取磁盘序列号

82 byte By wenyaner at 2008-3-14
我用的C++写的一个小驱动程序 里面要获取磁盘序列号 请问如何用汇编来写 我不熟悉汇编 麻烦谁有代码可以给我一段吗 能直接用的 小弟先谢谢了

求助:截取中断后返回的问题?

385 byte By ti_ta at 2008-1-9
目的: 17h中断为打印中断,希望打印前修改打印的内容,而后再去执行打印. 方式:截取int 17h中断,执行一段代码,而后再返回到int 17h中断的服务程序入口. 实施:修改int 17h的中断服务程序入口,转向自己编写的代码,而后,恢复int 17h的中断服务程序入口地址,继续执行. 问题:1、汇编中实现,是直接对内存单元的内容进行修改吗?怎样可以恢复继续执行 int 17h的中断服务程序? 2、17h的中断入口地址是: 17h*4=5c; 是否80286以上的机器,不再是直接*4这么简单? 但我在机器上执行,发现就是*4的结果为入口地址,疑惑中。。。。 罗嗦了,谢谢有耐心读...

有符号数的输入,排序,输出

73 byte By gallanthunter-冷如冰 at 2008-1-9
请问各位大哥怎么弄一个有符号数的输入,排序,输出程序?无符号的自己会编,可有符号的自己就不知道该怎么 弄了,还请个位大哥指教.最好给个例子,谢谢!

我用radasm+masm匯編這個程序出錯

934 byte By getter-getter at 2008-1-9
----------------------------------------------------------------- .model small,c .data buff db "this is a example.",0 .code strlen proc uses ax bx,string:ptr byte mov bx,string xor cx,cx mov al,[bx] .while al!=0 inc cx inc bx mov al,[bx] .endw ret strlen endp .startup invoke strlen,...

请问: 是不是只有得到窗口的句柄,才能向它发消息呀?

22 byte By gaoqing000-gongkejin at 2008-1-9
是不是只有得到窗口的句柄,才能向它发消息呀?

有了解raid3的朋友么?raid3是把一个扇区,逻辑又划分了N块,我有些不明白

150 byte By myprotein at 2008-1-9
既然能把一个扇区又分开N块,那么堆真正的后端物理磁盘,它一次至少是读写一整个扇区的内容啊,难道扇区内部还可以有偏移?根据指针可以任意读取扇区中的某一段字节? 有没有相关命令,比如int13,或者scsi指令集 那么说磁盘每次读写最小单位,不是扇区了,而是字节,是么?

请教,磁盘一次最小只能读取一个扇区是么?我能否只读取出一个扇区内的前多少个字节?

65 byte By myprotein at 2008-1-9
扇区内部是否还有更加细的偏移? 如果有,那么scsi命令集中,有相关的参数么? 请各位帮忙解疑释惑,谢谢!

急呀 各位大虾们帮忙弄弄这汇编题 在线等答案 谢谢了!

3827 byte By sd1132632 at 2008-1-9
我弟弟的作业,要求是 从键盘上输入若干无符号十进制数,数与数之间用逗号分开。然后机器按从小到大的顺序显示这些数,数与数之间仍用逗号分隔。若输入的数中有非法数字,则显示出错误信息。 方法:输入一串以逗号为分隔符的十进制数字到缓冲区buf,然后从中分离出一段(以逗号为分隔符)送buf0存储区,再将分离出来的十进制数字串转换成二进制送入arr字存储区。待全部的十进制数字串转换成二进制后,再对arr存储区中的带符号数字排序,最后将排好序的数全部以十进制的形式显示出来。 学校给了代码不过是2位的怎么给改成4位的啊 下面是代码 主程序文件 ;LT512A.ASM include lt512a...

帮忙看一下,为什么会除法溢出?

78 byte By onedayonehole-从新学习C at 2008-1-9
mov ax,1000h mov bh,1h div bh 我觉得计算结果,ax应该还是1000呀

如何把c翻译成汇编

59 byte By nadirboxer-nadirboxer at 2008-1-9
那种编译器可以把C代码翻译成80x86汇编代码啊 gcc好像只能生成mips汇编指令

简单问题!求助,在线等!

49 byte By lostangel_zj at 2008-1-9
问一下;masm 6.11 中是否区分大小写? 如果区分,怎样改成像5.0那样不区分?

请问:汇编程序能不能连数据库,如ACCESS,MSSQL呀

26 byte By gaoqing000-gongkejin at 2008-1-9
汇编程序能不能连数据库,如ACCESS,MSSQL呀

请问: 系统启动时是怎么从硬盘上的读取文件而运行起来的呀,最开始是读哪个文件呀

35 byte By gaoqing000-gongkejin at 2008-1-9
系统启动时是怎么从硬盘上的读取文件而运行起来的呀,最开始是读哪个文件呀

Debug -A 命令疑惑?

611 byte By ti_ta at 2008-1-9
debug下的-A[address]命令,可以键入汇编语言命令,并汇编成机器代码,存入从指定地址开始的存储区中. 修改 INT 17 中断的入口程序:(由反汇编命令 -u 看到的如下程序) 原服务程序: 0210:058B(地址) 56(16进制) PUSH SI (汇编指令) 0210:058C 52 PUSH DX 0210:058D 50 PUSH AX ...... 执行: -A 0210:058B 0210:058B MOV AL,01 改变后的程序: -u 0210:058B 0210:058B(地址) B001(16进制) MOV AL,01 (汇编指令)...

大家帮忙看一个汇编程序,我看不懂,麻烦大家了,我急用!

7465 byte By LAI254265302 at 2008-1-9
大家帮忙看一个汇编程序,我看不懂,麻烦大家了,我急用! 麻烦大家在语句后面加上注释,以及运行操作方法。 我的QQ:254265302,我的邮箱是:laimingquan456@163.com 再次谢谢大家了! 代码还有,这里发不下,在上个帖子中还有。 code segment main proc far assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax mov ah,0 mov al,3 int 10h clear show mess1 show mess2 show mess13 sho...

大家帮忙看一个汇编程序,我看不懂,麻烦大家了,我急用!

3894 byte By LAI254265302 at 2008-1-9
大家帮忙看一个汇编程序,我看不懂,麻烦大家了,我急用! 麻烦大家在语句后面加上注释,以及运行操作方法。 我的QQ:254265302,我的邮箱是:laimingquan456@163.com 再次谢谢大家了! 代码还有,这里发不下,在下个帖子中还有。 data segment mess1 db ' student grade management system',0ah,0dh,'$' mess2 db ' this is main menu',0ah,0dh,'$' mess3 db '...

请问:p3.rc(2) : fatal error RC1015: cannot open include file resource.h.这种错误是什么原因呀

90 byte By gaoqing000-gongkejin at 2008-1-9
p3.rc(2) : fatal error RC1015: cannot open include file 'resource.h'.这种错误是什么原因呀?

请教,c编译器是怎么写出来的

85 byte By myprotein at 2008-1-9
是用汇编写的么? 好象说叫做自举法,先用汇编写一个编译器,然后写一个c代码的编译器,然后用前者编译后者,生成一个更强的编译器,然后反复编译,自举,是这样的么?

求助:电子琴乐谱串行传送与演奏的问题

1714 byte By wjq5588 at 2008-1-9
小弟利用pc内部的8250和8253两个芯片,编写了一个电子琴乐谱串行传送与演奏的程序,要求是按键的长短就是乐谱响的时间,不要用延迟程序。但执行.exe程序时,仅显示一个数字就退出程序,并且扬声器也不响,不知道是怎么回事,请高手看一下是怎么回事啊!谢谢了!…… 源程序如下: DATA SEGMENT TABLE DW 524,588,660,698,784,880,998,1048 DATA ENDS STACK SEGMENT STACK DB 256 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC...

请问:我发现有的变量要说明类型,不然就会有错误,有的就不用说明,这是什么原因呀?

109 byte By gaoqing000-gongkejin at 2008-1-9
比如, LOCAL @stPs:PAINTSTRUCT LOCAL @stRect LOCAL @hDc 后面的两个不用说明类型 但第一个要说明。

请问:当窗口消息为WM_CLOSE时,就DestroyWindow了,那还要PostQuitMessage干什么用呀?

56 byte By gaoqing000-gongkejin at 2008-1-9
当窗口消息为WM_CLOSE时,就DestroyWindow了,那还要PostQuitMessage干什么用呀?

帮忙看下这段代码,谢谢

366 byte By nilo-无聊的人 at 2008-1-9
LPVOID NewModule; LPDWORD lpimagesize; Module = GetModuleHandle(NULL);//进程映像的基址 _asm { push eax; push ebx; mov ebx,Module; mov eax,[ebx+0x3c]; lea eax,[ebx+eax+0x50]; mov eax,[eax] mov lpimagesize,eax; pop ebx; pop eax; }; 小弟刚刚学汇编,不理解上面这段代码,是C语言嵌入进去的,请高手帮忙转成C看看,谢谢了!...

编译器和平台之间的一些疑惑

310 byte By Windows_80X86_C at 2008-1-9
比如 都是一个C源程序 Linux平台的X编译器 Windows平台的Y编译器 A.这两个编译器对同样一个C源程序编译后,为什么只能在各自的平台上运行啊?编译以后目标程序里,有啥不一样啊? B.再如一个汇编源程序,而使用NASM编译后的程序,就即能在linux和Windows平台下都可以运行,这是为什么呀? 我原来想是因为(A情况)生成的两个文件结构不一样,组织形式不一样,所以只有相关的平台才能认得, 但是因为(B情况)又把我的想法给推翻了,可以有既linux下运行又可以在Windows下运行的程序啊....

如何在Win32汇编中定义C/C++中的union(联合体)

2 byte By XinChiMaker-心痴 at 2008-1-9
如题

什么是非一致代码段和一致代码段?

7 byte By mengshijie_1981-云中雀 at 2008-1-9
请大侠门指教!

一步步问,我要了解虚拟内存真相(2)

284 byte By lamputa_lito-lamputa at 2008-1-9
为什么堆栈段要定义为向下生长的,有什么好处?以下的话怎么理解? 一般只有堆栈数据段才使用向低端扩展的属性(堆栈段也可使用向上扩展的段),这是因为,向下扩展的段是为以下两个目的而设计的: 第一,堆栈段被定义为独特段,即DS和SS包含不同的选择器。 第二,一个堆栈段是靠将它复制到一个更大的段来扩充自己(而不是靠将现存的页增加到它的段上)。不打算用这种方法实现堆栈的设计者不需要定义向下扩展的段。 下面的又是怎么理解呢? 通过使用段环绕,可以把向下扩展段定义到任何线性地址且可定义为任何大小。

请问:RadAsm是怎样加入了这些提示信息的呀,比如很多的API函数,我感觉不是从MASM32里面加的

35 byte By gaoqing000-gongkejin at 2008-1-9
因为我并没有设置MASM32的路径,它就能提示各种函数了。

谁能帮我做几个题目啊

1305 byte By king208401 at 2008-1-9
假定(DS)=2050H,(ES)=3600H,(SI)=00A0H,(BX)=0100H,(BP)=1020H,(SS)=2100H数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数的EA及PA. 1. MOV AX,[100H] 2. MOV AX,[BX] 3. MOV AX,ES:[BX] 4. MOV AX,VAL[BP][SI] 5. MOV AX,VAL 四.(12分)已知某数据段的定义如下,画出变量在内存中的存储情况 DSEG SEGMENT X1 DB 0,’1’,-1,31H X2 DW 10,’ABCD’ X3 DW X2 DSEG EN...

请问:RadAsm能不能编写C程序呀?或者dos程序?

24 byte By gaoqing000-gongkejin at 2008-1-9
RadAsm能不能编写C程序呀?或者dos程序?

谁懂?请指点一下. AT89C2051单片机对锁相环(KB8825)编程?

2768 byte By momiao123 at 2008-1-9
AT89C2051单片机控制锁相环芯片:KB8825,频率合成 P1.4 使能端(EN) P1.5 数据(DATA) P1.6 clk 使能端为低电平 CLK在上升沿 数据开始发送 CLK下降 发送完一组编码之后 让EN保持一定时间的高电平 把编码锁存 再发送另一组数据..... 哪位做过相关的或者是有兴趣,指点一下 PS:KB8825是三星的锁相IC,谁要资料可以向我索取,或者自己搜 我的QQ:564801847 我是新手,临时磨的刀,但做了好久结果都没有对,实在心急,好郁闷了!我把代码贴出来大家帮忙看看好吗,这个是最基本的实现了,就是要求得到一个频点而已. 我是用4M基频...

帮忙看一段代码

949 byte By yifanwu-逸凡 at 2008-1-9
下面这段代码,esp所对应的地址有什么用? 如前4行为什么不直接mov ds:477197h,0C933h 呢? .code:1000D551 mov byte ptr [esp+0Ch+var_C], 33h .code:1000D555 mov byte ptr [esp+0Ch+var_C+1], 0C9h .code:1000D55A mov ax, [esp+0Ch+var_C] .code:1000D55E mov ds:477197h, ax .code:1000D564 mov ds:477410h, ax .code:1000D56A mov ds:...

如何用汇编编写一个让DOS重启的程式呢?

7 byte By cxkipq at 2008-1-9
如题,在线急等

请问:有没有什么编辑工具呀,老是在记事本下编,感觉不方便呀.

27 byte By gaoqing000-gongkejin at 2008-1-9
有没有什么编辑工具呀,老是在记事本下编,感觉不方便呀。

80x86汇编指令是CISC还是RISC,处理器MIPS又是什么?

510 byte By wlia-我想说说话 at 2008-1-9
最近在看《自己动手写操作系统》。以前学过一点汇编。虽然看得懂指令的意义,但是不明白程序为什么要那么设计。为什么?是不是必须清楚处理器的。 难道还要看IA-32 Intel Architecture Software Developer’s Manual 三卷。是不是实现操作系统不像写一般的程序,OD要与硬件互动,所以光明白了汇编语言本身还不够,还要明白硬件如何支持? 有人说 : “学汇编开始直接学CISC的指令集太费劲了,推荐先从RISC汇编开始,西方大学计算机专业走的也是这条路。可以看的一本书是Introduction to RISC Assembly Language Program...

请问:WM_PAINT,WM_CREATE这两个消息是不是直接执行的消息呀,不用鼠标点击

28 byte By gaoqing000-gongkejin at 2008-1-9
因为我发现如果在这两个消息下写一些函数,就会被直接执行。

一步步问,我要了解虚拟内存真相(1)

363 byte By lamputa_lito-lamputa at 2008-1-9
虚拟地址空间有64T的大小,但是由于这个64T不是平面空间,而是二维空间(段+偏移),这个空间是重叠的。基于GDT/LDT的访问模式,一个任务可以覆盖的地址基地址是32位的,可以在0——4G之间移动,而段限长为32位为0——4G之间,所以最多可以访问到的其实是0——8G之间的平面地址。这样理解对吗? 假设上面的理解是对的,那么把逻辑地址转为的线形地址的时候,线形地址是32位的,那么当逻辑地址表示的平面地址超过4G的时候怎么表示呢? 还有就是按照逻辑地址到线形地址的转换,64T到4G,这里面是会有很多重叠的,加入两个不同的逻辑地址都被映射到同一个线形地址,那么CPU怎么区别这是两个不同的逻辑...

请问:invoke RtlZeroMemory,addr @stWndClass, sizeof @stWndClass这里是什么意思呀?

35 byte By gaoqing000-gongkejin at 2008-1-9
它这里是不是将@stWndClass的地址清0呀,这里为什么要这样呀?

简单问题再次提问!

143 byte By feiyuxianwan-绯雨闲丸 at 2008-1-9
ARM的3阶段流水线,第一阶段从内存中取回指令。第二阶段开始解码,而第三阶段实际执行他。所以,程序计数器总是要超出当前执行的指令两个指令。请问为什么要超出两个指令啊?这是为什么啊?请大虾们给解释一下啊? 什么是只能用从字对齐的地址执行指令?字对齐地址是什么意思啊?

请问:WndProc proc hWnd:HWND, uMsg:UINT,wParam:WPARAM,lParam:LPRAM最后一个参数好像没有什么作用呀?

55 byte By gaoqing000-gongkejin at 2008-1-9
我看了一下函数里面的部分,uMsg是消息标识符,wParam是消息的进一步确认,那lParam是干什么用的呀?

长期困扰我的虚拟内存的若干问题

712 byte By lamputa_lito-lamputa at 2008-1-9
看这部分的内容的时候一直搞不懂某些东西,在这里提问,希望来一次彻底的理解。 1,保护模式下的虚拟存储空间是64T,寻址方法是段基地址+段内偏移。而保护模式下,这里的段基地址是通过段选择符得到GDT或者LDT的索引,并通过GDT/LDT得到响应的段基地址的。这里有个疑问,就是加入我想访问段基地址是:12345678H,但是由于它是通过段选择符来确定基地址的,我怎么知道哪个索引对应着12345678H这个基地址呢?如果我要访问的基地址是这个东西,那么我改怎么访问,系统又是怎么转换而得到的。 2,说虚拟存储空间有64T,并不是说虚拟地址空间可以表示为0——64T的范围,而是16K×4G...

新手求救!怎么实现按esc键退出!不论程序在运行什么?

2412 byte By xbq425200 at 2008-1-9
小弟写了个会动的方块程序 碰到屏幕边缘能弹回 现在要再加个功能 在方块运行时按esc键立即退出 怎么才能实现这个功能???小弟初学,写的很烂,请大家给我提提意见 ;动画 .model small .data .code .startup MOV AH,0 ;320×200彩色图形方式 MOV AL, 4 INT 10H MOV AH, 0BH ;设置绘图属性,背景蓝色,0号调色板 MOV BH, 0 MOV BL, 1 INT 10H MOV BX, 0 ;使用BX,DX来保存当前象素点位置 MOV DX,100 CALL DISPLAY ;开始绘图...