Program to move contents in memory-machine level programs, Assembly Language

Assignment Help:

Example : Write a program to move the contents of the memory location 0500H to BX and also to register CX. Add immediate byte 05H to the data residing in memory location, whose address is computed by using DS=2000H and offset=0600H. Store up the result of the addition in 0700H. Consider that the data is located in the segment specified by the data segment register which contain 2000H.

Solution :

The flow chart for the program is shown in given figure.

After initializing the data segment register the content of the location 0500H are moved to the BX register by using MOV instruction. The similar data is moved also to the CX register. For this data transfer, there can be 2 options as shown.

1739_example1.jpg

826_example2.jpg

(a) MOV CX,       BX      ; As the contents of BX register will be similar as 0500H after execution

                                   ; of MOV BX,[0500H].

(b) MOV CX, [050OH]   ; Move directly from 0500H to CX

 

In the first option the opcode is just of 2 bytes, whereas the second option will have 4 bytes of opcode. Thus the second option will need execution time and more memory. Due to these reasons, the first option is preferable.

The immediate data byte 05H is added to content of 0600H by using the ADD instruction. The result will be goes in destination operand 0600H. It is next stored at the location 0700H. In particular case of the 8086/8088 instruction set, there is no instruction for direct transfer of data from the memory source operand to the memory destination operand rather than the string instructions. So the result of addition which is present at 0600H should be moved to any one registration amongst the general purpose registers, except BX and CX, or else the contents of BX and CX will be changed. We have chosen DX (we could have selected register AX also, because once DS is initialized to 2000H the contents of register AX are no longer useful for this purpose. therefore the transfer of result from 0600H to 0700H is accomplished in two stages by using successive MOV instructions, for an instance,

Firstly, the content of 0600H is DX register and then the content of DX register is moved to 0700H. The program terminated with the instruction HLT.

 


Related Discussions:- Program to move contents in memory-machine level programs

Assembly Language Programming, Write a program that defines symbolic consta...

Write a program that defines symbolic constants for all of the days of the week

Register organization of 8086-microprocessor, Register Organization of 8086...

Register Organization of 8086 8086  has  a great  set  of registers  containing  special  purpose and general  purpose  registers.  All the 8086 resisters are 16-bit registers.

Modes of 8254-microprocessor, Modes of 8254 :   Mode 0 (Inter...

Modes of 8254 :   Mode 0 (Interrupt on Terminal Count)-GATE which value is 1 enables counting and GATE  which value is 0 disables counting, and GATE put not effect on

Aaa-arithmetic instruction-microprocessor, AAA: ASCII Adjust after Additio...

AAA: ASCII Adjust after Addition operation the AAA instruction is executed after an ADD instruction that adds 2 ASCII coded operands to give a byte of outcome in the AL. The AAA i

Cbw-cwd-arithmetic instruction-microprocessor, CBW: Convert Signed Byte to...

CBW: Convert Signed Byte to Word: This instruction converts a signed byte to a signed word. In other terms, it copies the sign bit of a byte to be converted to all of the bits in

Comparison between 8086 and 8088, Comparison between 8086 and 8088 All ...

Comparison between 8086 and 8088 All the changes in 8088 above 8086 are indirectly or directly related to the 8-bit, 8085 compatible data and control bus interface. 1) The p

Right triangle, code, Assembly Language How to print strings in Right Tria...

code, Assembly Language How to print strings in Right Triangle form?

Third generation microprocessor, III rd Generation Microprocessor: T...

III rd Generation Microprocessor: The single 3rd generation microprocessor chip having 64-pins began with the introduction of 16-bit Intel 8086 in 1978. The other essential

Interrupt table-how interrupt table processed-microprocessor, Interrupt Tab...

Interrupt Table Each interrupt level has a booked memory location, called an interrupt vector.  All these vectors (or pointers) are stored in the interrupt table. Table lies at

ADDITION-SUBTRACTION, HELLO I AM TRYING TO ADD AND SUBTRACT BUT I SEEM CAN'...

HELLO I AM TRYING TO ADD AND SUBTRACT BUT I SEEM CAN''T FIND THE CORRECT REGISTER TO PUT IN

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd