Voyager #01
06 июля 1998 |
|
PROFI CLUB - DD80 - description of the disk assembly under CP / M.
C) A.N.D.Y. Music: LASERDREAM (C) Mr.Z / LS (R) DGN DD80 Disassembler DD80 is perhaps the most powerful among the programs in its class. Despite that it is a console and written to the operating system CP / M, it can be successfully used for programs written in other operating systems. For three years of use in their work DD80, I'm quite fully explore its capabilities and I want to share their experiences ... * IDEOLOGY DD80 is simply limitless possibilities, which can not by any other disassembler. Those who worked with such a regime in the STS, I think, will no longer do so. :) The fundamental difference DD80 is that he was in his work is the map file. In This map shows the distribution of memory blocks, which come in 3 types: CODE, DATA, STORAGE. The first two explain, probably do not need, and the third view - that, when assembly is declared DEFS, ie reserved area. This card can write to disk and read back, add to it and remove the pieces, etc. But this a little later. The second nice feature DD80 is obtained, and in some cases completely automatic operation. I'm such a nowhere not seen. After mapping the final disassembly produced on CD format text file with an alternate character set. There also displays all official information. The disadvantages of the program can be attributed to the absence of any it may work with the halves of the index registers. : (Still affected by the lack of console sales (no windows, where the map consists of a set blocks, it scrolls on the screen two or three, etc.). * DESCRIPTION Once launched, the screen appears: Dizasembler ready for commissioning teams consisting three letters. List of available commands can be obtained by dialing HLP. All teams are divided into five types: 1. DISASSEMBLY COMMAND 2. MAP AND SYMBOL TABLE COMAND 3. FILE DEFINITION COMAND 4. FORMAT COMMANDS 5. SPECIAL FUNCTION COMMANDS FILE DEFINITION COMMANDS I do not accidentally start with an overview of the commands DD80 this group, despite the fact that they set aside HELP'e 4-th item. This group of commands performs the principal action, without which work would be impossible. In total there are five teams: DSK [drive:] filename - to attach the file. All we introduce reduces without spaces, the parameter drive: optional If the file is located on the current drive. OUT drive: - select a disc for recording maps and listings. EXC addr - setting the starting address of the file. By default, the files in the operating system CP / M on the address begins with # 0100. LOC - actual file location. ADR - display input file address. DISASSEMBLY COMMANDS 14 teams in this group control mode disassembler program. DAS [adr1] [adr2] - disassembly with the findings screen program listing. If the parameter adr2 is absent, then the process ends when the met one of the teams JP ADDR, JP (HL), RET, HALT. If you omit the parameter adr1, then dizassemb tunneling occurs with the current address. In this If you can just click <ESC>. Exhaust section of the program will be entered into the map and placed chen as CODE. TAB [adr1] [adr2] - puts the memory card in and marks it as a data (DATA). STG [adr1] [adr2] - declares the block of memory as STORAGE. DMC DMT - the relevant transactions without displaying. DMS / XMC XMT - removal of the blocks from the map. XMS / GMC [adr] - global disassembly. DD80 begins to disassemble at the specified address. Village le to finish processing the main part of the file (ie, to always be greeted with one of the teams, stop ing process) from a table of raw addresses is chosen addresses, an asterisk, and the process continues. When all the branches of the program will be on the works, all blocks of code will be marked in the map. GMT - fills in the card as all the DATA blocks, the presence of the corresponding addresses in the table. GMS - marks all that remains after otrabot ki teams GMC and GMT, as STORAGE. Thus, you can disassemble the program by entering only three teams! But do not rejoice too much, because here has its own submarine stones. Read about them in the end. These two commands are executed after as will be composed of all the card program: FAS - the team final (FINAL) disassembles tion with output on screen. Zazhuzhzhit drive, and you can zhete go drink some tea or a smoke. FMD - the same, but without displaying much bys tray. :) As a result, the final disassembly at drive creates an ASCII file in an alternative encoding. It looks like this: MAP AND SYMBOL TABLE COMMANDS This group performs with the card and consists of six teams: NEW - cleaning cards. Necessary if you pile up if the card is that of the usual command removes blocks from the card (such as XMC) is no longer correct. MAP - maps on the screen. Bottom of the screen starts crawl list of blocks, divided into three columns: CODE, DATA, STORAGE. Following this table will be a person of indeterminate address (UNRESOLVED SYMBOL TABLE). Seeing in this table are the address, labeled asterisk, boldly disassembles from this address. SYM - displaying the full address table. Here will appear and the addresses that are already reflected nerdy, and those who have not. REF - reshaping Address Table This commands do should be applied after the removal of any blocks from the map. In the process of working off of the commands hole again peretrassiruyutsya all CODE-plots about the program. SVM - a record card to the disk (current or established team lenny OUT). As a result, drive us to the appearance file filename.MAP, takes up very little of the place, but keeps all the information about the source file. LDM - respectively, the map is loaded from disk. Thus, you can disassemble the file and write it to disk, and if the distribution of blocks wrong, then you just download the DD80, take a map, to correct "mistakes" and to repeat the disassembly. No torture! FORMAT COMMANDS This group includes service team not very much and necessary, but useful. Six of them: D80 - use the instruction set processor INTEL 8080. This is where instead of LD A, (DE) is written LDAX D (Those who have written in assembler 8080, will understand me). D85 - use the set command processor 8085. Frankly, these teams and in a nightmare not a dream. ;) Z80 - use a set of commands Z80. LIN - the number of characters per line console (the pole nadtsatirichnoe number no more than # 50 = 80). DEL - remapping the keys to delete characters. BSC - the same thing, but for the key BACKSPACE. SPECIAL FUNCTION COMMANDS This group contains four teams of general purpose: HLP - as already mentioned, the call reference. END - end of work and out of CP / M. Same effect gives a shortcut+ . SAV line - is stored in memory row line, which can then cause ruyu pressing + <R>. DUM [addr] - dump the output from the address addr. The EU is omitted, then displays the contents of memory with the current address. In this case, we can just click <ENTER>. * From undocumented The size of the symbol table that is defined by default, to me, unfortunately, is not known. He was constantly lacking and, periodically, DD80 asks, can Does it expand. It looks like this: Seeing this message, feel free to answer "Y"; nothing terrible will happen. When the program encounters any team that operates with half of the index registers, DD80 stop disassembly, and writes: Against this only helps the "shamanic" way: to determine the byte # DD # FD or as DATA, and then continue with the disassembly of the address. Not forget to fix it! If you like to get involved in the use of global commands such as GMC and GMT, then you can run into the following circumstance: part of the file that you've marked as DATA, in fact, may be executable code, as DD80 and warn you. This would be something like: As I understand it, DD80 in the process of working off the team GMT checks if calls (commands JP, CALL) in this area. This again dokazyvet that DD80 - "Smart" program. * Some good advice 1) Many programmers write programs in such Style: LD DE, SCR_ADR CALL PRINT DATA DEFB "Hello, friends!" # 00 LD HL, TABLE ... PRINT POP HL ... In the usual disassembly team DAS with one parameter (or no parameters) will you understand that. Therefore, in order to data were not included in the region CODE, after the discovery of subroutine that first thing is something enters the stack, find all its challenges and accurately disassembles team DAS with two parameters. 2) Often, when writing programs in assembler using the following method: depending on the value of the register (or register pair) from the table values of the selected address, then often goes Team JP (HL). As you may have guessed, case of an almost clinical. References to address sub-DD80 not detect it. Here can only help intermediate disassembly. After You will find etu_samuyu_chertovu_tablitsu, write a piece of paper a list of addresses, and ship again DD80. A little sloppy, but believe me, helps. 3) In order to disassemble the program, which does not work in CP / M, should be: a) move it out of TR-DOS disk in the system CP / M (with CopyK, Hop Commander or similar.) b) change the extension. CTR on. COM (otherwise no Why did not turn out). c) after the launch of DD80 and connect the file vves Tee command EXC addr, ie specify the address of triggering ka your (or your) program. d) on - business as usual. 4) And the last. All operations are well prodelyvat, first copy all the files on the RAM-disk. Unforgettable sensation: drive is not buzzing, the work is not retarded ... * P.S. Here, it seems, is all. If you have forgotten something, write to the the next issue. On the drive in an application, you will find the program as a file DD80.C, which must be transferred to the CP / M-drive and rename the. COM-file. With the DD80 can be done. For example, once upon a time I was the source DIZZY 3.5 and DRILLER. On the drive in an application, you will find the program as a file DD80.C, which must be transferred to the CP / M-drive and rename the. COM-file. With the DD80 can be done. For example, once upon a time I was the source DIZZY 3.5 and DRILLER. hx
Other articles:
Similar articles:
В этот день... 23 November