|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Varför maskinspråkprogram skrivet från en dator kommer inte att köras på en annan med olika CPU?

    Ett maskinspråkprogram skrivet för en dator kommer inte att köras på en annan med en annan CPU eftersom maskinspråket är direkt bundet till den specifika arkitekturen för CPU . Detta innebär att instruktionerna är kodade på ett sätt som endast den specifika CPU:s hårdvara kan förstå och köra. Skillnaderna faller inom flera viktiga områden:

    * Instruktionsset Architecture (ISA): Detta är den grundläggande uppsättningen av instruktioner som en CPU förstår. Olika CPU:er (även från samma tillverkare) har olika ISA:er. Vad är en enkel tilläggsinstruktion på en CPU kan vara en komplex flerstegsoperation på en annan eller kanske inte ens finns. Kodningen av dessa instruktioner (de specifika bitmönstren som representerar varje instruktion) varierar vilt mellan ISAS.

    * Antal register: CPU:er har interna register för tillfällig datalagring. Antalet och storleken på dessa register skiljer sig mellan CPU:er. Ett program skrivet för att använda ett specifikt nummer och typ av register fungerar inte på en CPU med en annan konfiguration.

    * Minnesadresseringslägen: Hur CPU kommer åt minnet (t.ex. direkt adressering, indirekt adressering, etc.) varierar mellan arkitekturer. Maskinkoden återspeglar dessa adresseringslägen, vilket gör den oförenlig med CPU:er med olika metoder.

    * Datarepresentationer: Hur datatyper (heltal, flytande punktnummer etc.) representeras i binärt format kan skilja sig åt. Ett program sammanställt för en CPU:s datarepresentation kan ge felaktiga resultat eller till och med kraschar på en CPU med en annan representation.

    * Systemsamtal: Program interagerar ofta med operativsystemet genom systemsamtal. Hur dessa samtal görs och de specifika koderna som används är CPU och operativsystemspecifika, vilket lägger till ytterligare ett lager av inkompatibilitet.

    I huvudsak är maskinkod extremt låg nivå och tätt kopplad till den fysiska hårdvaran. Att försöka köra maskinkod sammanställt för en CPU på en annan är som att försöka spela en skiva avsedd för en 33⅓ varv / min -skivspelare på en 45 varv / min skivspelare - hastigheterna är olika och resultatet är gibberish. Språk på högre nivå (som C ++, Java, Python) löser detta problem genom att använda kompilatorer eller tolkar för att översätta koden till ett formulär som är lämpligt för mål CPU:s arkitektur.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Definitionen av UML
    ·Hur man skriver en yttre koppling i AFD i WebFOCUS
    ·Vad är kodningssystem vad finns det för olika typer a…
    ·Hur gör du sammanställning av de olika deldatorerna?
    ·Vem uppfann monteringsspråk på datorn?
    ·Hur man läser kolumnen i en String
    ·NET Framework 3.0 Tutorials
    ·Hur man skapar en Pivot i VBA
    ·Hur man skriver ett manuellt steg - för-steg Case Soft…
    ·Hur Multiplicera en matris med en variabel i MATLAB
    Utvalda artiklarna
    ·Hur man sparar ett VBA Query om tillgång
    ·Hur tvinga Java till runda tal
    ·Konvertera C Struktur till VBA
    ·Connection Pool Tutorial
    ·Kommenterade metoder i Java
    ·Hur flytta data från MySQL till MongoDB Script
    ·Hur man lägger in en variabel i sökvägen i MATLAB
    ·Hur man bort skiljetecken i Python
    ·Hur man skriver ett skript som ska visas i Windows Time…
    ·Hur man tar bort nollor i Java rekursion
    Copyright © Dator Kunskap https://www.dator.xyz