Debug User Manual 1

Source: Internet
Author: User
Tags comparison table integer division
Debug-startup of PC
Debug is intended to be an insecticide. Here is the machine debugging tool.
In fact, there is an interesting story about the origins of Debug. scientists were working hard in an early computer room in the United States. At the same time, many large computers are constantly running. This is probably because the machine is overheated, causing some bugs, so that the computer cannot run normally. The scientists had to stop and catch the worms... the worms were caught, and the computer was running normally. Later on, this term was used to date ....
Although there are more and more good software, we only need to do it by using Debug! Next, let's learn how to use Debug in all aspects!
Common Debug command set
 
Name Description format
A (Assemble) Assembly a [address]
C (Compare) compares two memory blocks c range address
D (Dump) memory in hexadecimal format: d [address] Or d [range]
E (Enter) modify memory byte e address [list]
F (fin) preset a memory segment f range list
G (Go) Execution program g [= address] [address...]
H (Hexavithmetic) arithmetic operation h value
I (Input) Input I pataddress from the specified port address
L (Load) read disk l [address [driver seetor]
M (Move) memory block transfer m range address
N (Name) sets the file Name n filespec [filespec...]
O (Output) Outputs o portadress byte from the specified port address
Q (Quit) end q
R (Register) display and modify register r [Register name]
S (Search) to find the byte string s range list
T (Trace) Trace execution t [= address] [value]
U (Unassemble) disassembly u [address] or range
W (Write) storage disk w [address [driver sector secnum]
? Online Help?
Debug small assembly a command
The debug minor Assembly command a is a very useful function, and many small programs need it to do it.
Compiling small programs is more convenient and clean than compiling.
In Debug, the interrupt is very useful. First, let's first understand the interrupt.
The so-called interruption is, in fact, when you do something, someone will come to you to find something else. You should first put something in your hands (in the computer, it is called protecting the scene ), let's proceed with the person you called. When it's over, you'll go back and do what you just did. This is a very popular example.
This also happens when the computer is running. We call it an interruption.
Below are some of his frequently-used interrupt vector entry values: (Remember, it's very useful)
Ibm pc interruption int10
Oh Screen mode settings
Entry: AH = 0, AL = display method code (0--6)
0: 40*25 black and white
* 25 color
2: 80*25 black and white
3: 80*25 color text
* 200 color
* 200 black and white
6: 640*200 black/white image mode
7: 80*25 monochrome characters (monochrome display)
0BH color settings
Entry: AH = 0B, BL = 0 Set background color, BH = 0--15 BL = 1 set color code, BH = 0--1
0CH Write Graph points
Entry: AH = 0C, CX: DX = column number: row number, AL = color
ODH read Graph
Entry: AH = 0D, CX: DX = column number: row number
Return: AL = color
0EH writes characters on the current page and cursor
Entry: AH = 0E, AL = ASCII code of the character, BL = foreground color
OFH display status
Entry: AH = 0F
Return: AL = current display mode, AH = number of screen columns, BH = Current page number
01 H cursor settings
Entry: AH = 1, CH = starting line number of the cursor (00--0C), CL = ending line number of the cursor (00--0C)
Note: CH> CL
02 H cursor position
Entry: AH = 2, BH = page number, DH: DL = start row: Column
03 H read cursor position
Entry: AH = 3, BH = page number.
Return Value: DH: DL = start row: Column
06 H window volume
Entry: AH = 6, AL = number of rows in the window, CH: CL-DH: DL window coordinates
Note: AL = 0 scroll the entire window
07 H window volume
Entry: AH = 7, AL = number of rows in the window, CH: CL-DH: DL window Coordinate
08 H read the characters and attributes at the current cursor
Entry: AH = 8, BH = page number.
Return: AH: AL = Character Color: ASCII code of the character
NOTE: For the color code, see the comparison table below.
09 H: write characters and attributes at the current cursor
Note: The cursor does not move down
Entry: AH = 9, BH = page number, BL: AL = Character Color: ASCII code of the character, CX = repeated times
1 2 3 4 5 6 7 8
BL R G B I R G B
Flashing character base color + highlighted Character Color
Interrupt vector number table
Interrupt number explanation interrupt number explanation
0 division is 0 error 19 Boot Loader
1-step interruption called on day 1A
2 unblocked interrupt NMI 1B keyboard block Get control
3 power-off interrupt (CCH) obtain control when the 1C clock is interrupted
4 overflow interrupt 1D pointing to CRT initial parameter table
5. The screen print interrupt 1E points to the band parameter table.
6-7 retain 1F 1KB graph Mode
8 timer interrupt (18.2 seconds) 20 end DOS program
9. The keyboard interrupts the 21 DOS function call.
A-D retains the end address 22 (EXEC is recommended)
E. Floppy Disk disconnection 23 DOS Crtl-Break exit address
F reserve 24 DOS fatal error Vectors
10 screens I/O Calls 25 DOS absolute disk read
11 device check call 26 DOS absolute disk write
12 memory check Call 27 end program and resident (31 h for creation)
13 floppy disk I/O calls 28-3F DOS retained
14 RS-233I/O call 40-7F unused
15 boxed tape host I/O call 80-85 BASIC retained
16 keyboard I/O call 86-F0 BASIC Interpreter
17 printer I/O call F1-FF unused
18 ROM-BASIC entry
Instructions
Call Command (process call) (control command-long transfer)
Details:
Direct call within a specified segment
Indirect call within segments (registers)
Indirect call within segments (memory)
Inter-segment direct call
Inter-segment indirect call
Command name
Jmp Instruction (unconditional transfer instruction) (control instruction-long transfer)
Details:
Segment jump directly
Jump directly within a short segment
Segment indirect jump (Register)
Segment indirect jump (memory)
Inter-segment direct jump
Inter-segment indirect jump
Command name
Ret instruction (process return) (control instruction-long transfer)
Details:
Return within a specified range
The return value is immediately added to the sp
Return between Segments
Returns the value of "immediate number" plus "sp" between segments.
Na/jnbe command (control command-short transfer) transfer when not less than or not equal
Jae/jnb commands (control commands-short transfer) are transferred when they are greater than or equal
Jb/jnae command (control command-short transfer) smaller than transfer
Jbe/jna commands (control commands-short transfer) smaller than or equal to transfer
Jg/jnle command (control command-short transfer) greater than transfer
Jge/jnl command (control command-short transfer) greater than or equal to transfer
Jl/jnge command (control command-short transfer) smaller than transfer
Jle/jng commands (control commands-short transfer) smaller than or equal to transfer
Je/jz command (control command-short transfer) equals to transfer
Jne/jnz command (control command-short transfer) is not equal to transfer
Jc commands (control commands-short transfer) are transferred when there is a bitwise
Jnc command (control command-short transfer) column carry-Time Transfer
Jno command (control command-short transfer) transfer without Overflow
Jnp/jpo command (control command-short transfer) transfer when the parity is odd
The jns command (control command-short transfer) symbol bit is "0" Transfer
Jo command (control command-short transfer) overflow Transfer
Jp/jpe command (control command-short transfer) transfer when the parity is an even number
Js commands (control commands-short transfer) when the sign bit is "1"
Loop command (cyclic control command-short transfer) When cx is not 0
Loope/loopz command (cyclic control command-short transfer) When cx is not 0 and Mark z = 1
 
Loopne/loopnz command (cyclic control command-short transfer) cx is not 0 and Mark z = 0 when the cycle
Jcxz command (cyclic control command-short transfer) transfer when cx is 0
★Int command (Interrupt command) interrupt command (detailed later)
Into command (Interrupt command) overflow interrupt
Iret command (Interrupt command) interrupt return
Command name
Shl command (logical left shift)
Sal command (arithmetic left shift)
Shr command (logical right shift)
Sar instruction (arithmetic right shift) Register, 1
Rol instruction (loop left shift) Register, cl
Ror command (loop right shift) memory, 1
Rcl command (left shift through carry loop) memory, cl
Rcr command (right shift through carry loop) (logical operation)
Not command (Inverse Operation) Register Inverse
(Logical operation) memory Inversion
And command (and Operation) (logical operation)
 
Register and register
Registers and memory registers
Memory and register memory
Instant and memory
Number immediately and Accumulators
Or command (or operation) (logical operation)
Register or register
Register or memory register
Memory or register memory
Instant or memory
Immediate number or accumulators
Test command (test) (logical operation)
 
Register test register
Register test memory
Register test immediate count
Instant storage test count
Number of accumulators test immediately
     
Movs command (string transmission) (string operation command)
Single Transfer
Repeated Transfer
     
Cmps command (string comparison) (string operation command)
Single comparison
Repeated comparison
     
Scas command (string scan) (string operation command)
Single search
Repeated search
     
Lods command (loading string)
(String operation command)
Single load
Reload
     
Stos command (save string) (string operation command)
Single Storage
Duplicate Storage
Mov command (Transfer word or byte) (data transfer command)
Transfer between registers
Transfer between memory and register
Send data to storage immediately
Send data to register now
Memory transmitted to the Accumulators
Accumulators transfer memory
Transfer Register to segment register
Transfer memory to segment register
Segment register to register
Segment register transmitted to the memory
     
Pop command (pop-up stack) (data transfer command)
Push command (push words into the stack)
Memory
Register
Segment sender
Xchg command (exchange word or byte) (data transfer command)
Register and register exchange
Memory and register Switching
Register and accumulators exchange
   
In command (Port input) (data transfer command)
Enter directly
Indirect Input
     
Out command (Port output) (data transfer command)
Direct output
Indirect output
     
Add command (addition) (arithmetic command)
Adc command (incoming bit addition)
Register + register
Register + memory register
Memory + register memory
Instant + Memory
Immediate number + Accumulators
     
Inc command (plus 1) (arithmetic command)
Memory Increment
Register Increment
     
Sub instruction (subtraction) (arithmetic instruction)
Sbb command (with borrow subtraction)
Register-register
Register-memory register
Memory-register memory
Immediate-memory
Immediate number-Accumulators
     
Dec command (minus 1) (arithmetic command)
Memory reduction
Register reduction
     
Nec command (reverse, minus 0)
Register Complement
Memory Complement
     
Cmp commands (comparison) (arithmetic commands)
Register and register comparison
Comparison between registers and memory
Register comparison with immediate count
Comparison between memory and immediate count
Comparison between the accumulators and the immediate number
     
Mul instruction (unsigned multiplication) (arithmetic instruction)
Imul command (integer multiplication)
Multiply by an 8-bit register
Multiply by 16-bit registers
Multiply by an 8-bit storage unit
Multiply by a 16-bit storage unit
     
Div instruction (unsigned Division) (arithmetic instruction)
Idiv instruction (Integer Division)
Divided by 8-bit registers
Divided by 16-bit registers
Divided by eight-bit storage units
Divided by 16-bit storage units
Debug practice
1. view the production date and version of the motherboard.
D ffff: 05
D fe00: 0e
2. Simulate the Rest key function
A
: 100 jmp ffff: 0000
105
G
3. Fast formatting of a floppy disk
L 100 0 0 * 'insert a formatted floppy disk
W 100 0 0 * 'put a floppy disk to be formatted
Note: * respectively: 720 K e | 1.2 M id | 1.44 M 21
4. Hard disk formatting Methods
(1) G = c800: 05
(2) A 100
Mov ax, 0703
Mov cx and 0001
Mov dx, 0080
Int 13
Int 3
G 100
5. Accelerator keyboard
A
Mov ax, 0305
Mov X, 0000
Int 16
Int 20
Rcx
10
N fast.com
W
Q
6. Disable the Monitor (press any key when restoring)
A
Mov ax, 1201
Mov bl, 36
Int 10
Mov ah, 0
Int 16
Mov ax, 1200
Int 10
Rcx
10
N crt-of.com
W
Q
7. Hard Disk DOS Boot Record repair
Add a formatted floppy disk to the drive.
Debug
-L 100 2 0 1
-W 100 0 50 1
Put the floppy disk in the faulty drive.
Debug
-L 100 0 50 1
-W 100 2 0 1
-Q
8. setup password in coms
Debug
-
Mov X, 0038
Mov cx and 0000
Mov ax, bx
Out 70, al
Inc cx
Cmp cx and 0006
Jnz0106
Int 20
-Rcx
: 20
-Nclearpassword.com
-W
-Q
Note: The above is suitable for super and dtk machines. For ast machines, because their passwords are placed at the 4ch-51h address of coms, you only need to change: mov bx, 0038 to: mov
Bx, 004c
9. Cancel the coms password (clear coms data as initialization)
-O 70, 10
-O 71,10
-G
-Q
10. Save the Master Boot Record of the hard disk to a file.
Debug
-
Mov ax, 0201
Mov X, 0200
Mov cx and 0001
Mov dx, 0080
Mov int 13
Int 3
-Rcx
200
-Nboot. dat
-W
-Q
11. Call interrupt to restart the computer (files can be generated)
Debug
-
Int 19
Int 20
-Rcx
: 2
-Nreset.com
-W
-Q
Main DEBUG commands
DEBUG is a high-level tool designed for the assembly language. It provides a very effective debugging method for the assembly language programmers by means of a single step and breakpoint setting.
I. Call of the DEBUG program
At the DOS prompt, enter the following command:
C: \ DEBUG [D:] [PATH] [FILENAME [. EXT] [PARM1] [PARM2]
The file name is the name of the debugged file. If you type a file, DEBUG loads the specified file into the memory, and you can DEBUG it. If you do not enter a file name, you can use the content of the current storage to work, or use the DEBUG commands N and L to load the required files into the storage before debugging. In the command, D specifies the drive PATH as the PATH, and PARM1 and PARM2 are the command parameters required to run the file to be debugged.
After the DEBUG program is called in, a prompt is displayed. You can use the DEBUG command to DEBUG the program.
Ii. Main DEBUG commands
1. display the storage unit command D (DUMP) in the format:
_ D [address] Or _ D [range]
For example, the method for displaying the content of a storage unit within a specified range is:
-D100 120
18E4: 0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02G... 8. G...
18E $: 0110 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37... h .. m pqvw.
7
18E4: 0120 8B
0100 to 0120 are the unit content displayed in DEBUG. Each byte is displayed in hexadecimal notation on the left, and each byte is represented in ASCII notation on the right. The segment address is not specified here. The D command automatically displays the content of the DS segment. If only the first address is specified, 80 bytes starting from the first address are displayed. If no address is specified, the last unit after the last D command is displayed.
2. There are two commands for modifying the content of a storage unit.
· The input command E (ENTER) has two formats: the first one can replace the specified storage unit content with a given content table. Command Format:
-E address [list]
For example,-e ds: 100 F3 'xyz' 8D
F3, 'x', 'y', and 'Z' each occupy one byte. This command can be used to replace the storage unit DS with these five Bytes: the original content from 0100 to 0104.
The second format adopts the method of changing cells one by one. Command Format:
-E address
For example,-e ds: 100
It may be displayed as follows:
18E4: 0100 89 .-
If you want to change the unit content to 78, you can directly type 78 and press the "space" key to display the content of the next unit, as shown below:
18E4: 0100 89.78 1B .-
In this way, you can constantly modify the content of successive units until you end the command with the ENTER key.
· FILL in the Command F (FILL) in the format:
-F range list
Example:-F 4BA: 0100 5 F3 'xyz' 8D
Make 04BA: 0100 ~ Unit 0104 contains the specified five bytes. If the number of bytes in the list exceeds the specified range, the items that exceed the limit are ignored. If the number of bytes in the list is smaller than the specified range, the list is used again until all specified units are filled.
3) The command R (register) for checking and modifying the register content has three formats:
· Display the content and status of all registers in the CPU. The format is as follows:
-R
For example,-r
AX = 0000 BX = 0000 CX = 010A DX = 0000 SP = fffe bp = 0000 SI = 0000 DI = 0000
DS = 18E4 ES = 18E4 SS = 18E4 CS = 18E4 IP = 0100 NV UP DI PL NZ NA PO NC
18E4: 0100 C70604023801 mov word ptr [0204], 0138 DS: 0204 = 0000
· Display and modify the content of a register in the following format:
-R register name
For example, Type
-R AX
The system will respond as follows:
AX F1F4
:
That is, the current content of the AX register is F1F4. If this parameter is not modified, press ENTER. Otherwise, you can ENTER the content to be modified, for example:
-R bx
BX 0369
: 059F
Modify the content of the BX register to 059F.
· Display and modify the flag status. Command Format:
-The RF system will respond, for example:
Ov dn ei ng zr ac pe cy-
If you do not modify the content, press ENTER. Otherwise, you can ENTER the content to be modified, such:
Ov dn ei ng zr ac pe CY-PONZDINV
You can see that the input order can be any.
4) run the command G in the format:
-G [= address1] [address2 [address3…]
Address 1 specifies the start address of the operation. If not specified, the operation starts from the current CS: IP address. The subsequent addresses are the breakpoint addresses. When the command is executed to the breakpoint, the execution is stopped and the contents of all registers and flag spaces are displayed, as well as the next command to be executed.
5) the Trace command T (Trace) has two formats:
· Trace commands one by one
-T [= address]
Execute a command from the specified address and then stop to display the content of all registers and the flag value. If no address is specified, the task starts from the current CS: IP address.
· Multiple command tracking
-T [= address] [value]
Execute n commands from the specified address and then stop. n is specified by value.
6) Assemble command A (Assemble) in the format:
-A [address]
This command allows you to enter assembly language statements, compile them into machine code, and store them in the storage area starting from the specified address one after another. Note: DEBUG regards all the entered numbers as hexadecimal numbers. Therefore, to enter a decimal number, describe it later, for example, 100D.
7) The disassembly command U (Unassemble) has two formats.
· Disassemble 32 bytes from the specified address in the format:
-U [address]
For example:
-U100
18E4: 0100 C70604023801 mov word ptr [0204], 0138
18E4: 0106 C70606020002 mov word ptr [0206], 0200
18E4: 010C C70606020202 mov word ptr [0208], 0202
18E4: 0112 BBO4O2 mov bx, 0204
18E4: 0115 E80200 CALL 011A
18E4: 0118 CD20 INT 20
18E4: 011A 50 PUSH AX
18E4: 011B 51 PUSH CX
18E4: 011C 56 PUSH SI
18E4: 011D 57 PUSH DI
18E4: 011E 8B37 mov si, [BX]
If the address is omitted, 32 bytes are displayed starting from the next unit of the last command of the previous U command.
· Disassemble storage units within a specified range in the format:
-U [range]
For example:
-U100 10c
18E4: 0100 C70604023801 mov word ptr [0204], 0138
18E4: 0106 C70606020002 mov word ptr [0206], 0200
18E4: 010C C70606020202 mov word ptr [0208], 0202
Or
-U100 112
18E4: 0100 C70604023801 mov word ptr [0204], 0138
18E4: 0106 C70606020002 mov word ptr [0206], 0200
18E4: 010C C70606020202 mov word ptr [0208], 0202
The two formats are equivalent.
8) Name command N (Name) in the format:
-N filespecs [filespecs]
Command to format the two file identifiers in the two file control blocks CS: 5CH and CS: 6CH, so that the files can be mounted to the storage disk using the L or W command. The filespecs format can be:
[D:] [path] filename [. ext]
For example,
-N myprog
-L
-
You can mount the file myprog into the memory.
9) Load command. There are two functions.
· Load the content in the specified sector range on the disk to the region where the storage starts from the specified address. The format is:
-L [address [drive sector]
· Mount the specified file in the following format:
-L [address]
This command has formatted the file specified by the file control block in CS: 5CH. If no address is specified, it is loaded into the storage zone starting with CS: 0100.
10) Write command W (Write). There are two functions.
· Write data to the specified sector of the disk. The format is:
-W address drive sector
· Write data to a specified file. The format is:
-W [address]
This command writes the data in the specified storage area to the file specified by the file control block at CS: 5CH. If no address is specified, data starts from CS: 0100. The number of bytes to be written into the file should be placed in the BX and CX.
11) Exit the DEBUG command Q (Quit) in the format:
-Q
It exits DEBUG and returns DOS. This command does not provide the disk storage function. If you want to save the disk, use the W command first.
Q: a beginner asks a low-level question. After debugging-a is executed, how can I change this line if one line of input is incorrect?
Answer:
Add the following input:
D: \ PWIN95 \ Desktop> debug
-
2129: 0100 movax, 200
2129: 0103 movbx, 200
2129: 0106 movcx, 200
2129:0109
In this case, a movbx or 200 error is found, which should be movbx or 20. You can press enter to return the "-" status and enter:
-A103
2129: 0103 movbx, 20
If multiple or fewer lines are required, you can use the M command to remove or increase the program space.
How can I debug and compile your first PC x86 assembly language program?
The following simple explanations allow a new assembler to use DEBUG:
0) How can I quickly obtain help for debugging during use.
1) Let's get started, for example, displaying the BIOS date.
2) Search for the "IBM" characters in your computer's COMMANG. COM file.
3) one-digit hexadecimal number operation.
4) Check the content of the x86 register.
5) Let's write our first program written in mechanical language-print a character.
6) Now we use assembly language commands to do the same thing as Example 5.
7) Now, we not only need to write an assembly program, but also store it on disks.
8) Now, let's try to see a compiled program.
9) You can use the DEBUG computing function to calculate the program length.
10) another method for displaying strings on the screen.
11) Let's try again and again.
12) Now we connect the two programs.
13) Let's run the patch step by step.
14) if the initial command is not a jump command, this method may be used.
All of the following commands can run in WIN9x MS-DOS mode.
Enter the MS-DOS Of The Way are:
[Start] [Program] [MS-DOS mode]
[Start] [run] [open] COMMAND [OK]
Or you can double-click it:
C: \ Windows \ Command.com
0) How can I quickly obtain debugging help when using it?
The following PROMPT> indicates a directory PROMPT: C: \ WINDOWS \ COMMAND \
PROMPT> DEBUG /? <Press enter to press the enter key now>
How? An error occurred. Shown below
C: \ WINDOWS> DEBUG /?
Runs Debug, a program testing and editing tool.
DEBUG [[drive:] [path] filename [testfile-parameters]
[Drive:] [path] filename Specifies the file you want to test.
Testfile-parameters Specifies command-line information required
The file you want to test.
After Debug starts, type? To display a list of debugging commands.
The error message is displayed. Have you noticed the last sentence?
Now let's try again:
PROMPT> DEBUG <press enter> (note that the DEBUG program command appears after a line .)
-? <Input after the displayed horizontal line? Press enter> (the following content is in alphabetical order)
(Note: Don't type the dash or comments -- just ?)
It is shown as follows, but there is no Chinese. I added Chinese.
Assemble A [address]
Compare C range address
Dumping dump D [range]
Enter E address [list]
Fill F range list
Go G [= address] [addresses]
Hex H value1 value2 in hexadecimal format
Input I port
Load L [address] [drive] [firstsector] [number]
Move M range address
Name N [pathname] [arglist]
Output O port byte
Perform proceed P [= address] [number]
Leave quit Q
Record register R [register]
Search for search S range list
Description trace T [= address] [value]
Unassemble U [range]
Write W [address] [drive] [firstsector] [number]
Allocate extended memory allocate expanded memory XA [# pages]
Release extended memory deallocate expanded memory XD [handle]
Map expanded memory pages XM [Lpage] [Ppage] [handle]
Display expanded memory status XS
-Q <press enter> (This is to exit DEBUG and return to DOS state) This quits out of debug, returning to the DOS prompt)
Tested examples below walk the user thru the following debug examples:
In the following example, the reader must understand the following DEBUG commands.
-D: Display the contents of an area of memory within a certain range
-Q: exit the DEBUG program Quit the debug program.
-S Search for whatever
-H hexadecimal Hex arithmatic
-R: Display or change the content of one or more registers Display or change the contents of one or more registers
-E Enter the data into the memory and Enter data into memory in a detailed address; beginning at a specific location
-G runs the program in memory. Go run the executable program in memory
-U disassembly, turning the mechanical code we don't know into the Unassemble machine code we can understand the assembly language symbol Unassemble machine code into symbolic code
-T describes the usage of an instruction. Trace the contents of one instruction
-P: execute or execute a related command Proceed, or execute a set of related instructions
-A: Compile the Assembly command into the mechanical code Assemble symbolic instructions into machine code.
-N Name a program
-W writes a named program into the disk Write the named program onto disk
-L Load the program into the memory Load the named program back into memory
Returned directory

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.