About: Indirect branch     Goto   Sponge   NotDistinct   Permalink

An Entity of Type : dbo:ProgrammingLanguage, within Data Space : dbpedia.demo.openlinksw.com associated with source document(s)
QRcode icon
http://dbpedia.demo.openlinksw.com/describe/?url=http%3A%2F%2Fdbpedia.org%2Fresource%2FIndirect_branch

An indirect branch (also known as a computed jump, indirect jump and register-indirect jump) is a type of program control instruction present in some machine language instruction sets. Rather than specifying the address of the next instruction to execute, as in a direct branch, the argument specifies where the address is located. An example is 'jump indirect on the r1 register', which means that the next instruction to be executed is at the address in register r1. The address to be jumped to is not known until the instruction is executed. Indirect branches can also depend on the value of a memory location.

AttributesValues
rdf:type
rdfs:label
  • Indirect branch (en)
  • 간접 분기 (ko)
  • Косвенный переход (ru)
rdfs:comment
  • An indirect branch (also known as a computed jump, indirect jump and register-indirect jump) is a type of program control instruction present in some machine language instruction sets. Rather than specifying the address of the next instruction to execute, as in a direct branch, the argument specifies where the address is located. An example is 'jump indirect on the r1 register', which means that the next instruction to be executed is at the address in register r1. The address to be jumped to is not known until the instruction is executed. Indirect branches can also depend on the value of a memory location. (en)
  • 간접 분기(indirect branch, 간접 브랜치, 간접 점프, 레지스터-간접 점프)는 다음 인스트럭션의 메모리 주소를 런타임에 매개 변수로 받아들이는 프로그램 제어 명령어 중 하나이다. 간접 분기의 다음 인스트럭션 주소는 레지스터나 메모리에 의해 간접적으로 지정되는데, 가령 간접 분기의 매개 변수로 어떤 메모리 주소가 주어졌다면, 다음 인스트럭션의 주소는 이 메모리 주소가 아닌 "이 메모리 주소에 저장된 메모리 주소"가 된다. 간접 분기의 다음 인스트럭션 주소는 이 인스트럭션이 실행되기 전까지는 알 수 없다. 간접 분기는 조건 분기문(예: if 문)이나 다중 분기문(예: switch 문)을 구현하는데 유용한데, 가령 다음 실행할 코드가 변수의 값에 의해 결정된다면, 에서 이 값으로 다음 인스트럭션의 주소를 찾아낸 다음 간접 분기를 통해 점프할 수 있다. 경우의 수가 제한적인 경우에는 변수 값에 따라 다음 인스트럭션 주소를 레지스터에 직접 입력시킨 후에 간접 분기로 하여금 제어 흐름을 점프하도록 할 수도 있다. (ko)
  • Косвенный переход (от англ. indirect branch, также используются термины computed jump (вычисляемый переход), indirect jump (непрямой переход) и register-indirect jump (регистро-косвенный переход)) — тип программного контроля выполнения инструкций, представленный в виде некоторого набора инструкций машинного кода. Вместо указания адреса следующей инструкции для , как это принято для прямых переходов, здесь аргумент указывает местонахождение адреса. Схожим образом инструкции вызова подпрограммы могут быть косвенными с адресом вызываемой подпрограммы, указанным в регистре или ячейке памяти. (ru)
dcterms:subject
Wikipage page ID
Wikipage revision ID
Link from a Wikipage to another Wikipage
sameAs
dbp:wikiPageUsesTemplate
group
  • "nb" (en)
has abstract
  • An indirect branch (also known as a computed jump, indirect jump and register-indirect jump) is a type of program control instruction present in some machine language instruction sets. Rather than specifying the address of the next instruction to execute, as in a direct branch, the argument specifies where the address is located. An example is 'jump indirect on the r1 register', which means that the next instruction to be executed is at the address in register r1. The address to be jumped to is not known until the instruction is executed. Indirect branches can also depend on the value of a memory location. An indirect branch can be useful to make a conditional branch, especially a multiway branch. For instance, based on program input, a value could be looked up in a jump table of pointers to code for handling the various cases implied by the data value. The data value could be added to the address of the table, with the result stored in a register. An indirect jump could then be made based on the value of that register, efficiently dispatching program control to the code appropriate to the input. In a similar manner, subroutine call instructions can be indirect, with the address of the subroutine to be called specified in memory. Function Pointers are typically implemented with indirect subroutine calls. Indirect branches were one of the attack surfaces of Spectre. To mitigate the attack GCC 8.1 introduced the following new options: -mindirect-branch=, -mfunction-return= and -mindirect-branch-register. (en)
  • 간접 분기(indirect branch, 간접 브랜치, 간접 점프, 레지스터-간접 점프)는 다음 인스트럭션의 메모리 주소를 런타임에 매개 변수로 받아들이는 프로그램 제어 명령어 중 하나이다. 간접 분기의 다음 인스트럭션 주소는 레지스터나 메모리에 의해 간접적으로 지정되는데, 가령 간접 분기의 매개 변수로 어떤 메모리 주소가 주어졌다면, 다음 인스트럭션의 주소는 이 메모리 주소가 아닌 "이 메모리 주소에 저장된 메모리 주소"가 된다. 간접 분기의 다음 인스트럭션 주소는 이 인스트럭션이 실행되기 전까지는 알 수 없다. 간접 분기는 조건 분기문(예: if 문)이나 다중 분기문(예: switch 문)을 구현하는데 유용한데, 가령 다음 실행할 코드가 변수의 값에 의해 결정된다면, 에서 이 값으로 다음 인스트럭션의 주소를 찾아낸 다음 간접 분기를 통해 점프할 수 있다. 경우의 수가 제한적인 경우에는 변수 값에 따라 다음 인스트럭션 주소를 레지스터에 직접 입력시킨 후에 간접 분기로 하여금 제어 흐름을 점프하도록 할 수도 있다. 비슷한 방식으로, 서브루틴 호출 역시 메모리에 저장된 서브루틴 주소를 통해 간접적으로 이루어질 수 있다. 일반적으로 함수 포인터가 이러한 간접적인 서브루틴 호출을 이용해 구현된다. 간접 분기는 예측적 실행과 결합되어 스펙터 공격을 가능하게 한다. 이에 대한 방어책으로 GCC 8.1 버전부터 간접 분기와 관련된 코드 생성 시에 스펙터 공격에 대한 방어 메커니즘을 수동으로 지정해줄 수 있는 옵션들이 추가될 예정이다. (-mindirect-branch=, -mfunction-return=, -mindirect-branch-register=). (ko)
  • Косвенный переход (от англ. indirect branch, также используются термины computed jump (вычисляемый переход), indirect jump (непрямой переход) и register-indirect jump (регистро-косвенный переход)) — тип программного контроля выполнения инструкций, представленный в виде некоторого набора инструкций машинного кода. Вместо указания адреса следующей инструкции для , как это принято для прямых переходов, здесь аргумент указывает местонахождение адреса. В данном случае в качестве примера можно привести команду вида 'косвенный переход по регистру r1', что означает, что следующая инструкция для выполнения находится по адресу, хранящемуся в регистре r1. Адрес перехода неизвестен, пока инструкция не будет выполнена. Косвенные переходы так же могут зависеть от местонахождения в памяти. Косвенный переход может весьма пригодиться для выполнения условного перехода, особенно это касается многовариантных переходов. К примеру, исходя из введённых в программу данных, значение может искаться в указателей кода для обработки различных вариантов в зависимости от значения данных. Значение данных может добавляться к адресу таблицы, а результат сохраняться в регистре. Косвенный переход может быть выполнен исходя из значения этого регистра, эффективно соотнося программный контроль с кодом, соответствующим введённым данным. Схожим образом инструкции вызова подпрограммы могут быть косвенными с адресом вызываемой подпрограммы, указанным в регистре или ячейке памяти. (ru)
gold:hypernym
prov:wasDerivedFrom
page length (characters) of wiki page
foaf:isPrimaryTopicOf
is Link from a Wikipage to another Wikipage of
is Wikipage redirect of
is Wikipage disambiguates of
is foaf:primaryTopic of
Faceted Search & Find service v1.17_git139 as of Feb 29 2024


Alternative Linked Data Documents: ODE     Content Formats:   [cxml] [csv]     RDF   [text] [turtle] [ld+json] [rdf+json] [rdf+xml]     ODATA   [atom+xml] [odata+json]     Microdata   [microdata+json] [html]    About   
This material is Open Knowledge   W3C Semantic Web Technology [RDF Data] Valid XHTML + RDFa
OpenLink Virtuoso version 08.03.3330 as of Mar 19 2024, on Linux (x86_64-generic-linux-glibc212), Single-Server Edition (378 GB total memory, 59 GB memory in use)
Data on this page belongs to its respective rights holders.
Virtuoso Faceted Browser Copyright © 2009-2024 OpenLink Software