IP . , , CS IP . , , 8086 128+127 , .
. , , . IP ( ) CS:IP ( ) . CS:IP . jmp. :
jmp shortTarget | jmp short @@5 | @@5 |
jmp nearTarget | jmp finish | finish |
jmp farTarget | jmp far count | count |
jmp regW/memDW | jmp bx, jmp [word si] | bx, , si |
jmp memDD | jmp [dword di] | , di |
, .
:
| |||||||||||||||||||||
:
| |||||||||||||||||||||
:
|
, , . 128+127 . , , .
|
|
, . .
. , :, :
Q ;
q0 ();
F ( ) , ;
Σ ( ), , ;
δ Q:
( δ ).
#include <stdio.h>
int c;
int
main()
{
goto s1;
s2: c = getchar();
switch(c)
{
case EOF:
exit(0);
default:
putchar(c);
goto s2;
}
s1: c = getchar();
switch (c)
{
case EOF:
exit(0);
case '1':
putchar('0');
goto s1;
case '0':
putchar('1');
goto s2;
}
}
#include <stdio.h>
int char_to_id (int c) {
switch (c) {
case '0': return 0;
case '1': return 1;
case EOF: return 2;
default: return 2;
}
}
typedef struct table_item_s {
int state;
int out_char;
} table_item_t;
#define END_STATE 2
table_item_t
T[2][3] = {
{ {1, '1'}, {0, '0'}, {END_STATE, '\n'}},
{ {1, '0'}, {1, '1'}, {END_STATE, '\n'}}
};
int main() {
int c, c_id;
int state = 0;
while(!feof(stdin)) {
c = getchar();
c_id = char_to_id(c);
putchar(T[state][c_id].out_char);
state = T[state][c_id].state;
if(state == END_STATE)
return 0;
}
}
́ ́ (. regular expressions, . RegExp, RegEx, . ́ ́) , (-, . wildcard characters). - (. pattern, - , ), .
. , , : , : , , ;
;
, ;
, .
.
. . . . . . . . . .