常用C语言与汇编语言之间的对应关系:if else;switch;条件表达式;while;for
时间: 2023-12-03 09:47:42 浏览: 38
下面是常用C语言与汇编语言之间的对应关系:
1. if else:
C语言代码:
```
if (condition) {
// do something
} else {
// do something else
}
```
汇编语言代码:
```
; assume condition is in register eax
cmp eax, 0 ; compare eax with 0
je else ; jump to else if eax is 0
; do something
jmp end_if
else:
; do something else
end_if:
```
2. switch:
C语言代码:
```
switch (expression) {
case value_1:
// do something
break;
case value_2:
// do something
break;
default:
// do something else
break;
}
```
汇编语言代码:
```
; assume expression is in register eax
cmp eax, value_1
je case_1
cmp eax, value_2
je case_2
jmp default_case
case_1:
; do something
jmp end_switch
case_2:
; do something
jmp end_switch
default_case:
; do something else
end_switch:
```
3. 条件表达式:
C语言代码:
```
result = condition ? value_if_true : value_if_false;
```
汇编语言代码:
```
; assume condition is in register eax
cmp eax, 0 ; compare eax with 0
je false_case ; jump to false_case if eax is 0
mov result, value_if_true ; move value_if_true to result
jmp end_conditional
false_case:
mov result, value_if_false ; move value_if_false to result
end_conditional:
```
4. while:
C语言代码:
```
while (condition) {
// do something
}
```
汇编语言代码:
```
start_while:
; assume condition is in register eax
cmp eax, 0 ; compare eax with 0
je end_while ; jump to end_while if eax is 0
; do something
jmp start_while ; jump back to start_while
end_while:
```
5. for:
C语言代码:
```
for (initialization; condition; increment) {
// do something
}
```
汇编语言代码:
```
initialization ; initialization code
start_for:
; assume condition is in register eax
cmp eax, 0 ; compare eax with 0
je end_for ; jump to end_for if eax is 0
; do something
increment ; increment code
jmp start_for ; jump back to start_for
end_for:
```