Advertisements
Advertisements
प्रश्न
Consider a block memory locations from C300 H to C30F H, another block from C400 H to C40F H. Write an assembly language program to exchange contents of these two blocks.
लघु उत्तर
Advertisements
उत्तर
| Label | Mnemonics code | Comments |
| MVI B, 10 H | ; Load block length | |
| ; Immediately into B | ||
| LXI H, C300H | ; Initiales addr of 1st | |
| ; block in HL pair | ||
| ; data accessible in mem. | ||
| LXI D, C400H | ; Addr of 2nd block is | |
| ; initialized to DE pair. | ||
| ; mem (M) not used here | ||
| BACK: | MOV C, M | ; data from 1st block into C |
| LDAX D | ; data of 2nd block into A | |
| MOV MA | ; data from A into Mem | |
| MOV A, C | ; data of C into A | |
| STAX D | ; store A into 2nd block | |
| INX H | ; Go to next mem of 1st block | |
| INX D | ; Go to next mem of 2nd block | |
| DCR B |
; decrement length counter |
|
| JNZ Back | ; If block length is zero | |
| ; then done. If not, jump | ||
| ; back to start of loop | ||
| HLT | ; Halt the process | |
| ; | ||
| ; |
shaalaa.com
या प्रश्नात किंवा उत्तरात काही त्रुटी आहे का?
