日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CSAPP第4章家庭作业参考答案

發布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSAPP第4章家庭作业参考答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.45
不正確
push %rsp的指令會將rsp減8之前的old value壓棧
應該是如下代碼:
movq REG, -8(%rsp)
sub $8, %rsp

4.46
不正確
應該改為
add $8, %rsp
movq -8(%rsp), REG

4.47

#include<stdio.h> long int a[100] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};void bubble_b(long *data, long count){long i, last;long *p0; //data[i]long *p1; //data[i+1]for(last = count-1; last > 0; last--){p0 = data;p1 = data + 1;for(i = 0; i < last; i++){if(*p1 < *p0){long t = *p1;*p1 = *p0;*p0 = t;}p0++;p1++;}} }int main(){printf("Before sorting:");for(int i = 0; i < 10; i++){printf("%ld ", a[i]);}printf("\n");bubble_b(a, 10);printf("After sorting:");for(int i = 0; i < 10; i++){printf("%ld ", a[i]);}printf("\n");return 0; }

測試結果:

x86-64匯編程序:

0000000000001169 <bubble_b>:1169: f3 0f 1e fa endbr64 116d: 55 push %rbp116e: 48 89 e5 mov %rsp,%rbp1171: 48 89 7d c8 mov %rdi,-0x38(%rbp)1175: 48 89 75 c0 mov %rsi,-0x40(%rbp)1179: 48 8b 45 c0 mov -0x40(%rbp),%rax117d: 48 83 e8 01 sub $0x1,%rax1181: 48 89 45 e0 mov %rax,-0x20(%rbp)1185: eb 73 jmp 11fa <bubble_b+0x91>1187: 48 8b 45 c8 mov -0x38(%rbp),%rax118b: 48 89 45 e8 mov %rax,-0x18(%rbp)118f: 48 8b 45 c8 mov -0x38(%rbp),%rax1193: 48 83 c0 08 add $0x8,%rax1197: 48 89 45 f0 mov %rax,-0x10(%rbp)119b: 48 c7 45 d8 00 00 00 movq $0x0,-0x28(%rbp)11a2: 00 11a3: eb 46 jmp 11eb <bubble_b+0x82>11a5: 48 8b 45 f0 mov -0x10(%rbp),%rax11a9: 48 8b 10 mov (%rax),%rdx11ac: 48 8b 45 e8 mov -0x18(%rbp),%rax11b0: 48 8b 00 mov (%rax),%rax11b3: 48 39 c2 cmp %rax,%rdx11b6: 7d 24 jge 11dc <bubble_b+0x73>11b8: 48 8b 45 f0 mov -0x10(%rbp),%rax11bc: 48 8b 00 mov (%rax),%rax11bf: 48 89 45 f8 mov %rax,-0x8(%rbp)11c3: 48 8b 45 e8 mov -0x18(%rbp),%rax11c7: 48 8b 10 mov (%rax),%rdx11ca: 48 8b 45 f0 mov -0x10(%rbp),%rax11ce: 48 89 10 mov %rdx,(%rax)11d1: 48 8b 45 e8 mov -0x18(%rbp),%rax11d5: 48 8b 55 f8 mov -0x8(%rbp),%rdx11d9: 48 89 10 mov %rdx,(%rax)11dc: 48 83 45 e8 08 addq $0x8,-0x18(%rbp)11e1: 48 83 45 f0 08 addq $0x8,-0x10(%rbp)11e6: 48 83 45 d8 01 addq $0x1,-0x28(%rbp)11eb: 48 8b 45 d8 mov -0x28(%rbp),%rax11ef: 48 3b 45 e0 cmp -0x20(%rbp),%rax11f3: 7c b0 jl 11a5 <bubble_b+0x3c>11f5: 48 83 6d e0 01 subq $0x1,-0x20(%rbp)11fa: 48 83 7d e0 00 cmpq $0x0,-0x20(%rbp)11ff: 7f 86 jg 1187 <bubble_b+0x1e>1201: 90 nop1202: 90 nop1203: 5d pop %rbp1204: c3 retq

Y86-64匯編:

pushq %rbp rrmovq %rsp, %rbp rmmovq %rdi,-0x38(%rbp) rmmovq %rsi,-0x40(%rbp) mrmovq -0x40(%rbp),%rax irmovq $0x1, %r8 subq %r8, %rax rmmovq %rax,-0x20(%rbp) jmp L1 .L5: mrmovq -0x38(%rbp),%rax rmmovq %rax,-0x18(%rbp) mrmovq -0x38(%rbp),%rax irmovq $0x8, %r8 addq %r8, %rax rmmovq %rax,-0x10(%rbp) irmovq $0x0, %r8 rmmovq %r8, -0x28(%rbp) jmp L2 .L4: mrmovq -0x10(%rbp),%rax mrmovq (%rax),%rdx mrmovq -0x18(%rbp),%rax mrmovq (%rax),%rax rrmovq %rdx, %r8 subq %rax,%r8 jge L3 mrmovq -0x10(%rbp),%rax mrmovq (%rax),%rax rmmovq %rax,-0x8(%rbp) mrmovq -0x18(%rbp),%rax mrmovq (%rax),%rdx mrmovq -0x10(%rbp),%rax rmmovq %rdx,(%rax) mrmovq -0x18(%rbp),%rax mrmovq -0x8(%rbp),%rdx rmmovq %rdx,(%rax) .L3: irmovq $0x8, %r8 mrmovq -0x18(%rbp), %r9 addq %r8, %r9 rmmovq %r9 -0x18(%rbp) irmovq $0x8, %r8 mrmovq -0x10(%rbp), %r9 addq %r8, %r9 rmmovq %r9, -0x10(%rbp) irmovq $0x1, %r8 mrmovq -0x28(%rbp), %r9 addq %r8, %r9 rmmovq %r9, -0x28(%rbp) .L2: mrmovq -0x28(%rbp),%rax mrmovq -0x20(%rbp), %r8 rrmovq %rax, %r9 subq %r8, %r9 jl L4 irmovq $0x1, %r8 mrmovq -0x20(%rbp), %r9 subq %r8, %r9 rmmovq %r9, -0x20(%rbp) .L1: mrmovq -0x20(%rbp), %r9 irmovq $0x0, %r8 subq %r8, %r9 jg L5 popq %rbp ret

4.51
iaddq V, rB c 0 F rB V
取指:
icode:ifun ←\leftarrow M1[PC]
rA:rB ←\leftarrow M1[PC+1]
valC ←\leftarrow M8[PC+2]
valP ←\leftarrow PC + 10

譯碼:
valB ←\leftarrow R[rB]

執行:
valE ←\leftarrow valB + valC
Set CC

訪存:
寫回:
R[rB] ←\leftarrow valE
更新PC:
PC ←\leftarrow valP

4.55

總結

以上是生活随笔為你收集整理的CSAPP第4章家庭作业参考答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。