Thời gian

Lời hay ý đẹp

Từ điễn Online


Tra theo từ điển:



Lịch Việt Nam

LIÊN KẾT

WWW.thcsnguyenbieu.ductho.edu.vn

Tài nguyên dạy học

Hỗ trợ trực tuyến

  • (Trần Quốc Thường)
  • (Lê Xuân Đương)
  • (Nguyễn Khắc Hòe)
  • (Nguyễn Hồng Quân)

Điều tra ý kiến

Bạn là ai?
Học sinh cũ của trường THCSNB
Đang học tại trường THCS NB
Mình không học ở THCS NB

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    Ly_tu_trong_hoan_chinh.flv GS_TRAN_DUC_THIEP.jpeg 4_EM_HS_TOT.jpg 4_EM_THUONG.jpg B7477CC9.jpg 2E81379B.jpg HXHAN1.jpg 0.GV_TANH.jpg 0.HT_thuong.jpg 0.IMG_0230.jpg 0.Me_hien_day_con.jpg IMG_0219.jpg 0.Thay_boi_xem_voi.jpg 0.HEN_SONG_LA.jpg SanxuatkeoCUDOCauPhu-HaTinh.jpg NHANHACCUNGDINHHUE.jpg Voquy_s.jpg DSC00593.jpg MOTRANPHU.jpg 0.Tu_dai_My_Nhan_Trung_Quoc.jpg

    Thành viên trực tuyến

    1 khách và 0 thành viên

    Tin tức từ báo mới

    CHÚC MỪNG NĂM MỚI ĐINH DẬU

    Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
    Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
    Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.

    Phần mềm Pascal

    Wait
    • Begin_button
    • Prev_button
    • Play_button
    • Stop_button
    • Next_button
    • End_button
    • 0 / 0
    • Loading_status
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn:
    Người gửi: Nguyễn Hồng Quân
    Ngày gửi: 19h:18' 19-10-2013
    Dung lượng: 1.9 MB
    Số lượt tải: 3
    Số lượt thích: 1 người (Nguyễn Hồng Quân)
    Inzwischen wisst ihr ja alle von dem Bug in der Unit Crt, der auf sehr
    schnellen Computern (PPro 200Mhz+) einen Runtime-Error 200 ausl”st.
    Der Fehler liegt im Startupcode von Delay(), bei einer Division wird das
    Ergebnis zu groá und passt nicht mehr in das Zielregister.

    Ich habe jetzt in den letzten Tagen einen Bugfix geschrieben, der alle mit
    Pascal kompilierte EXE-Dateien patchen kann, darunter auch *Crosspoint*.
    Dieses Verfahren funktioniert auch bei Programmen fr den Protected Mode.

    Um Programme zu fixen, die im Quelltext vorliegen, kann man auch andere
    Verfahren, insbesondere das Ersetzen von Delay(), anwenden.

    Dadurch l„uft Delay auf allen langsamen Maschinen weiterhin korrekt,
    ebenso wie auf Maschinen mit 200Mhz. Wenn es dann bald noch schnellere
    Prozessoren gibt, wartet Delay() auf diesen dann aber etwas zu wenig, aber
    abstrzen wird diese Stelle auf keinen Fall mehr.

    Hier jetzt die Erkl„rung:

    >530B:0087 E83C02 call 02C6
    >530B:008A F7D0 not ax
    >530B:008C F7D2 not dx
    >530B:008E B93700 mov cx,0037
    >530B:0091 F7F1 div cx
    ^^^^^^^^^
    >530B:0093 A35C00 mov [005C],ax

    Diese Division an der Stelle CS:0091 bzw. CS:0099 verursacht eine
    Exception #0 und damit einen Runtime-Error 200.
    Die erste Prozedur (hier bei CS:0087) ermittelt, wie weit die CPU einen
    Z„hler in ca. 55ms herunterz„hlen kann. Durch die beiden folgenden NOT-
    Befehle wird der Wert negiert und dann durch 55 geteilt. (37h=55d)
    Dieser Wert, der dann in einer Variablen (hier [005C]) gespeichert wird,
    wird sp„ter in Delay() verwendet, um 1ms zu warten.

    Ich habe die Stelle so abge„ndert:

    > cs:007E E88501 call ....
    > cs:0081 F7D0 not ax
    > cs:0083 F7D2 not dx
    > cs:0085 B93700 mov cx,0037
    > cs:0088 3BD1 cmp dx,cx
    > cs:008A 7205 jb 0091
    > cs:008C B8FFFF mov ax,FFFF
    > cs:008F EB02 jmp 0093
    > cs:0091 F7F1 div cx
    > cs:0093 A35C00 mov [005C],ax

    Dadurch wird verhindert, dass das Ergebnis sp„ter gr”áer als ein Word
    wird. Natrlich musste ich dazu einige Befehle einfgen. Um den Code nicht
    komplett verschieben zu mssen, habe ich einige Nachl„ssigkeiten der
    Programmierer von BP/TP ausgenutzt, um vorher einige Bytes einzusparen,
    z.B.:

    vorher:

    > cs:0062 33C0 xor ax,ax
    > cs:0064 A25100 mov [0051],al
    > cs:0067 A26100 mov [0061],al
    > cs:006A A26200 mov [0062],al
    > cs:006D 40 inc ax
    > cs:006E A25000 mov [0050],al

    nachher:

    > cs:0062 33C0 xor ax,ax
    > cs:0064 A36100 mov [0061],ax
    > cs:0067 40 inc ax
    > cs:0068 A35000 mov [0050],ax


    Das Programm (TPPATCH.EXE) berprft die zu patchende Datei genau, damit
    nicht eine EXE-Datei "zu Tode gepatcht wird". Die Positionen der Variablen
    werden automatisch gescannt, daher sollte der Patch mit allen Versionen
    von TP7/BP7 arbeiten. Ich habe es nicht mit TP6 getestet (das habe ich
    nicht). Es w„re m”glich, das es auch dessen Dateien patchen kann.
    -> Jedes Feedback ber dieses Programm ist natrlich willkommen.

    Das ganze ist natrlich nur notwendig, wenn auch die Unit CRT eingebunden
    wurde.

    Man kann durchaus per Batchdatei alle Dateien auf der Festplatte versuchen
    zu patchen, denn es TPPATCH fhrt zuerst eine ganze Reihe von Tests durch,
    es wird also keiner anderen Datei ein Haar gekrmmt.

    Gepackte EXE-Dateien mssen vor dem Patchen entpackt werden,
    z.B. mit UNP (ftp://garbo.uwasa.fi/pc/execomp/unp411.zip).

    Ich bernehme natrlich keine Verantwortung fr alles, was man damit
    anstellen kann. Vor dem Patchen von fremden Programmen sollte man einen
    Blick in die LICENSE.DOC etc. werfen.

    Andreas Bauer
     
    Gửi ý kiến

    ↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng RAR và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT  ↓