MCU Instruction Problem The MCU instruction is correct or false

Updated on technology 2024-05-09
14 answers
  1. Anonymous users2024-02-10

    The emergence of this problem is relatively common, and there are several main aspects:

    If you use a pirated system, there is a possibility that such a problem will occur, it is recommended: use the genuine version.

    If it doesn't affect your computer or happens occasionally, leave it alone, and restart your computer to disappear automatically.

    Viruses that are caused by viruses are completely anti-virus to the computer.

    The hardware is mainly caused by incompatible memory modules, and the memory should be replaced if necessary.

    system or other software. [The ghost version of the system is prone to this problem].

    Open or close IE, QQ, games, **, etc., the memory can not be read or written, the first thing that comes to mind may be the problem of this software, (the general solution is to uninstall and reinstall, upgrade or replace other versions, no, only uninstall the software, the problem can be solved).

    1) If there is a problem with the system itself, the driver is not very stable, it is not compatible with the system or file protection appears, install the official patch in time. (Reinstall the system if necessary.) )

    2) If there is a problem with a certain software, here is mainly to look at the software running at boot, [use 360 and so on to check the software running on boot, and remove the software that does not need to run].

    3) Software conflicts, uninstall the problematic software. (For example, if it occurs during installation or runtime, it is necessary to upgrade, patch, replace the software to another version, or uninstall the problematic software to solve the problem).

    There are two ways to deal with it: If it doesn't work, you can only restore or reinstall the system

    Trial command exclusion.

    Start Run Enter cmd -- Enter, and enter the following command in the command prompt.

    for %1 in (%windir%\system32\*.dll) do s %1 enter.

    When you're done, underneath the input.

    for %i in (%windir%\system32\*.ocx) do s %i carriage return.

    If you are afraid of typing mistakes, you can copy these two commands, then right-click the mouse button after the command prompt, hit "paste", press enter, and wait patiently until the screen scrolling stops. Restart your computer

    Run regedit into the registry, under hkey local machine software, microsoft windows, currentversion, explorer, shellexecutehooks, there should only be one normal key, and delete the rest. [If there is another (default) leave it alone, it is usually empty].

  2. Anonymous users2024-02-09

    J is Jump C is cy, carry bit, inside PSW.

    jc is a cy=1 jump.

    jnc is cy=0 jump.

    jb is a bit=1 jump.

    jnb is a bit=0 jump.

    jbc is bit=1 redirected, and cleared.

  3. Anonymous users2024-02-08

    These are all bit-variable conditional transfer instructions with the following functions and usages:

    jc rel ;If cy=1, then PC+2+rel pc, if cy=0, then PC+2 pc

    jnc rel ;If cy=0, then pc+2+rel pc, if cy=1, then pc+2 pc

    jb bit, rel ;If (bit)=1, then PC+3+rel PC, if (bit)=0, then PC+3 PC

    jnb bit, rel ;If (bit)=0, then PC+3+rel PC, if (bit)=1, then PC+3 PC

    jbc bit, rel ;If (bit)=1, then PC+3+rel PC, and set (bit)=0, if (bit)=0, then PC+3 PC

    The function of this set of instructions is that if the conditions are met, they will be transferred to the destination address for execution, and if the conditions are not met, the next instructions will be executed sequentially. Particular attention should be paid to the destination address being in the 256b range (-128b +127b) where the start address of the next directive is central. When writing a program in assembly language, in order to make it easy to understand the program, the offset rel is often replaced by a label, and the assembly program automatically calculates the number of offset bytes and fills in the instruction **.

  4. Anonymous users2024-02-07

    1. CLR A pair.

    2. mul r0, r1 is wrong, only mul a, b

    3. mov dptr, 1050h is wrong, guess the intention of this question should be mov dptr, 1050h, and dptr can only use movx @dptr, a to assign value to it in addition to the immediate number assignment.

    4. mov a, @r7 wrong, only r0 and r1 can be addressed.

    5. Add 30h, 20h wrong, add can only be followed by a, that is, add a, direct

    6. MOV R1, C is wrong, C is a bit, bits and bytes cannot be transmitted in this way.

    7. JMP @ro+DPTR is wrong, this instruction can only be used with JMP @a+DPTR

    8. mov a, 3000h is wrong, a is 8 bits, and the 16-bit immediate number cannot be assigned to a

    9. movc @a+dptr,a is wrong, the instruction should be movc a,@a+dptr

    10、 movx a,@a+dptr

  5. Anonymous users2024-02-06

    Are you referring to the assembly or c? If it's a compilation, you should pay attention to whether the register is used wrong, whether the immediate number is added, that's nothing more than that, c doesn't have to think about it so much, and there is basically nothing wrong with it

  6. Anonymous users2024-02-05

    1. CLR A is wrong, CLR is a bit instruction, counterpoint, such as: CLR C

    2. mul r0, r1 is wrong, only mul ab

    3. mov dptr, 1050h wrong, dptr has 2 bytes, and the address is 8 bits at 1050h.

    4. mov a, @r7 right, the address in the chip can be used, and the off-chip address can be movx

    5. Add 30h, 20h is wrong, 20h is changed to 20h, 20h is the address, not an immediate number.

    6. mov r1, c is wrong, c is a bit address, not an 8-bit byte address.

    7. JMP @ro+dptr is wrong, not this command JMP @a+dptr

    8. mov a, 3000h wrong, 3000h is 2 bytes, can only give dptr

    9 movc @a+dptr, a wrong, no command movc a, @a+pc

    10 movx a, @a+dptr wrong, no command movx a, dptr

  7. Anonymous users2024-02-04

    1. CLR A pair.

    2、mulr0,r1

    Wrong, only mul

    a,b3、mov

    dptr,1050h

    False, guess the intent of the question should be mov

    dptr, 1050h, and dptr can only be assigned with movx@dptr,a in addition to the immediate number assignment.

    4、mova,@r7

    False, only r0 and r1 can be addressed.

    5、add30h,20h

    Wrong, add can only be followed by a, that is, add

    a,direct

    6、movr1,c

    False, c is a bit, bits and bytes cannot be transmitted in this way.

    7、jmpro+dptr

    Wrong, this instruction can only be used in jmp

    a+dptr

    8、mova,#3000h

    False, a is 8 bits, and 16 bits cannot be assigned to a9 and movc

    a+dptr,a

    False, the directive should be.

    movca,@a+dptr

    10、movx

    a,@a+dptr

  8. Anonymous users2024-02-03

    Hello landlord:

    First of all, I want to explain that unless there is a special explanation, it is impossible to know whether this is a byte address or a bit address based on 40h alone! For byte addressing, 40h is in the byte addressing area, and bit addressing cannot be performed, so the usage of mov c, is wrong.

    So the landlord may have questions, when is 40h a byte address, and when is it a bit address?

    In fact, it is very good to judge: the landlord takes a look at the following two instructions:

    mov c,20h

    mov a,20h

    These two directives seem to have the same structure, but in fact they are completely opposite. If the operand is "c", then the next 20h represents the 20h of the bit-addressing area (i.e., the lowest bit of 24h in byte addressing); If the operand is "a", then the address is 20h of byte addressing. The assembler will automatically determine whether 20h is a byte or bit address based on the operand c or a.

    The division of the bit-addressing area is as follows: the address of the bitable addressable area is 16 byte units from 20h 2fh, then the 16-byte unit has a total of 16*8=128 bit addresses, from the lowest bit of 20h to the highest bit of 2fh, a total of 128 bit addresses of 00h 7fh are generated in order. If you add the SFR high-end 128-bit address, the 51 machine has a total of 256-bit addresses.

  9. Anonymous users2024-02-02

    mov c,40h

    mov c, and then look at the compilation result, whether these two instructions are the same.

  10. Anonymous users2024-02-01

    The 40h in this instruction is not an 8-digit number, but the physical address of a register, which I can't remember for a while.

  11. Anonymous users2024-01-31

    1.When the MCS-51 executes the MOVX @dptr,A command, the WR signal is valid. (Right).

    2.The instruction that generates the wr signal is (d:movx @dptr,a).

    MOVX @dptr,A instruction causes a negative pulse on pin WR, making the external data memory WE valid, allowing data to be written; MOVX A, on the other hand, @dptr instruction causes a negative pulse on the pin RD, making the external data memory OE active, allowing the data to be output.

  12. Anonymous users2024-01-30

    Hehe, I'll help you out.

    Here's an algorithm for you:

    1. Adopt a loop structure: the number of loops is 20 times, at the beginning, design an off-chip data pointer dptr points to 1000h, and design the data pointer in the chip; R1 points to 30h; The pointing of r0 can be switched to, which can be pointed to 10h or 50h;

    R2 is stored at an address greater than 128 for 10 hours; R3 is stored less than 128 storage addresses for 50h;

    2 Loop body: that is, the next oh that takes the data off the chip, and then compares the size with 128, if it is equal to 128, it is stored in the unit referred to by the pointer r1; If it is greater than 128, then (the toggle pointer r0 points to the address saved by r2) is stored in the unit referred to by the pointer r0;

    If it is less than 128, then (toggle pointer r0 points to the address saved by r3) is stored in the unit to which pointer r0 refers;

    Modify the pointer. 3 The number of cycles minus 1 is not equal to 0, continue the cycle, otherwise it will end.

  13. Anonymous users2024-01-29

    When explaining the instructions, they all say that rel is an 8-bit signed complement number, which is the offset in the relative transfer instruction.

    In practice, the destination is written after sjmp.

    At compile time, compile the software, and calculate this offset, which is written into the machine language as "8-bit signed complement number".

    Therefore, the offset of this "8-bit signed complement number" is not concerned with "The Programmer".

    When programming, just write: sjmp so-and-so marker, and that's it.

    Some books always write about machine language to show how advanced they are.

  14. Anonymous users2024-01-28

    The PC is the address pointer for executing the instruction, which is the location where the instruction is stored, and rel represents the offset of the transfer instruction, such as the PC address 100HL0100H:

    sjmp 8 ;Then PC <-100H+2+8 = 10Ah (hexadecimal).

    That is, after executing the instruction transfer to the address of 10ah.

Related questions
4 answers2024-05-09

How is your light-emitting diode connected, if there is a power supply stringed to the light-emitting diode, the low level will be on, if it is the output port of the single-chip microcomputer, it will not be on.

18 answers2024-05-09

Landlord, org 0030h.

How do you understand what I mean? >>>More

5 answers2024-05-09

Only R0 and R1 can store data and addresses, @r7 indirect addresses are invalid; movx a,r0 error: incoming external data, must be indirectly addressed movx a,@r0; Movx B, @dptr Error: Only accumulator A can receive data from external data storage, B cannot; movc a, @r0 wrong: >>>More

9 answers2024-05-09

It's as simple as letting the 8 LEDs controlled by the P1 port flash back and forth three times in sequence. >>>More

10 answers2024-05-09

Ignoring the influence of temperature and other factors, the method of measuring voltage by series resistance can be directly adopted. >>>More