# `ldi`

[Z80 Documentation](https://asm-editor.specy.app/documentation/z80.md) › [Instructions](https://asm-editor.specy.app/documentation/z80/instruction.md)

Web page: https://asm-editor.specy.app/documentation/z80/instruction/ldi

**Load and increment**

Category: Block and string

Copies the byte at (HL) to (DE), increments HL and DE and decrements BC, setting P/V while BC is not zero.

2 bytes · 16 cycles

## Flags

| Flag | Effect |
| --- | --- |
| S | not changed |
| Z | not changed |
| H | always 0 |
| P/V | changed in a way of its own, as the form says |
| N | always 0 |
| C | not changed |

## Forms

- `ldi` · Transfers a byte of data from the memory location pointed to by HL to the memory location pointed to by DE. Then HL and DE are incremented and BC is decremented. p/v is reset if BC becomes zero and set otherwise.

## Example

```z80
        .org 0x8000
        ld hl, source
        ld de, 0x9000
        ld bc, 4
        ldi
        halt
source: .byte 1, 2, 3, 4
```
