freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

80x86匯編語言程序設(shè)計(第2版)習(xí)題答案-免費閱讀

2025-05-08 11:14 上一頁面

下一頁面
  

【正文】 up(amp。 }}void Compute(void){ int a[2]。 down(amp。 // 訪問InBuf的互斥信號量SEMAPHORE mutex2 = {1, 0}。} IN_BUFFER。 i n。 匯編語言程序: .386 public _sum8_TEXT segment para public 39。__asm { mov sum, 0 mov ecx, N lea eax, anext: mov edx, [eax] add sum, edx add eax, 4 loop next}printf(sum = %d\n, sum)。__stdcall調(diào)用約定從右到左將實在參數(shù)壓入堆棧,由函數(shù)本身移去調(diào)用者壓入堆棧的參數(shù),函數(shù)名在編譯后被轉(zhuǎn)換為“_函數(shù)名參數(shù)長度”的形式,其中,參數(shù)長度是指參數(shù)表的字節(jié)數(shù)(用十進(jìn)制表示)。CPU取出描述符中的32位基地址,加上邏輯地址中的32位偏移地址,得到一種中間形式的地址,被稱為線性地址。, CR, LF, 0。 判斷Shift是否按下 and dl, ShiftBits jnz OrigInt9QuitInt9: mov al, 20h out 20h, al 。OldInt9 dd ?。MyInt9 proc far sti push ds push ax push cx mov ax, 40h mov ds, ax xor cx, cxWaitData: in al, 64h test al, 01b loopz WaitData jz QuitInt9 in al, 60h 。 保存原中斷向量 mov ax, es:[ IntNo*4] mov word ptr OldInt9, ax mov ax, es:[ IntNo*4 + 2] mov word ptr OldInt9+2, ax。, CR, LF, 0QuitInt9: mov al, 20h out 20h, al 。 修改鍵盤緩沖區(qū)頭指針HeadPtr cli mov bx, HeadPtr mov ax, [bx] add bx, 2 cmp bx, EndBuf jb NoWrap mov bx, BufferNoWrap: mov HeadPtr, bx sti pop bx pop ds retReadKey endp89 .386 option segment:use16IntNo equ 9CR equ 0dhLF equ 0ahDelScanCode equ 53hEscScanCode equ 01hCtrlBit equ 4AltBit equ 8KbdFlags equ byte ptr ds:[17h]BootFlag equ word ptr ds:[72h] cseg segment para public 39。(3)對于硬件中斷服務(wù)程序,應(yīng)在返回之前,向中斷控制器發(fā)送中斷結(jié)束命令??蓤?zhí)行文件的建立過程如下:① ml /c ② lib + ③ 建立可執(zhí)行文件ml 第8章81(1) mov al, 38h out 25h, al(2) mov dx, 1042h in ax, dx mov Buf, ax(3) mov eax, 12345678h out 50h, eax82 PORT_ST1 equ 25hPORT_IN1 equ 26hPORT_ST2 equ 35hPORT_IN2 equ 36hLEN equ 100dseg segment para public 39。 同(1)Ranking endpcseg1 ends end。 名次GRADE ends .dataScores dw 6, 9, 3, 6, 9LEN = ( $ Scores ) / 2Grades GRADE LEN dup ( {, 1 } ) .codeStart: … 。Scores dw 60, 90, 30, 60, 90LEN = ( $ Scores ) / 2Grades GRADE LEN dup ( {, 1 } ) dseg endscseg segment para public 39。段CSEG2:模塊2的段CSEG,類別為39。段SSEG:由模塊1和模塊3的段SSEG組合而成,類別為39。Message No. 4$39。 參數(shù)N1進(jìn)棧 call Sum add ax, Parm_N 。 取J的地址到ES:BX mov ax, es:[bx] 。039。$39。$39。 元素個數(shù) dw 1, 2, 4, 3, 4 。Bin:39。039。Binary:39。$39。$39。$39。 (4)dw 39。 (6)錯誤。45(1)正確。(3)目標(biāo)文件的連接。JMP L 。39 (1)除數(shù)為0。段內(nèi)調(diào)用:IP(下一條指令的16位偏移地址)進(jìn)棧。● CPU總是從地址CS:IP處取指令,EIP的高16位為0。因為段內(nèi)偏移地址是16位,故每個段最大只能216B,即64KB。其中,數(shù)據(jù)總線決定了CPU每次存取數(shù)據(jù)的最大位數(shù);地址總線決定了系統(tǒng)的最大可編址空間;控制總線用來控制CPU與內(nèi)存和I/O設(shè)備之間的數(shù)據(jù)傳送方式。(2)十進(jìn)制數(shù)1的8位二進(jìn)制補碼表示;帶符號數(shù)255的16位二進(jìn)制補碼表示;無符號數(shù)255的8位二進(jìn)制形式。習(xí)題參考答案習(xí)題參考答案1第1章11匯編的主要功能:輸入:匯編語言源文件輸出:目標(biāo)文件處理:對源文件進(jìn)行語法檢查;將符號指令翻譯為機器指令。(3)十進(jìn)制數(shù)1的16位二進(jìn)制補碼表示;帶符號數(shù)65535的32位二進(jìn)制補碼表示;無符號數(shù)65535的16位二進(jìn)制形式。22 8位通用寄存器8個:AH,AL,BH,BL,CH,CL,DH和DL。25 物理地址 = 段地址 16 + 偏移地址?!?SS:SP表示堆棧段的棧頂?shù)刂?,ESP的高16位為0。(2)轉(zhuǎn)移到過程的第1條指令去執(zhí)行。(2)除數(shù)太小,被除數(shù)太大,導(dǎo)致商溢出。 直接轉(zhuǎn)移,轉(zhuǎn)移到標(biāo)號L所在地址JMP X 。輸入文件:目標(biāo)文件與庫文件。 (2)錯誤。類型不匹配。1239。dseg endscseg segment assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax mov ah, 1 int 21h push ax lea dx, CrLf mov ah, 9 int 21h pop ax cmp al, 39。Msg2 db 39。Num1 dw ? 。, 39。 jb Error cmp bl, 39。, 39。 數(shù)組元素Max dw 32768Min dw 32767Sum dw 0Average dw 0 dseg endscseg segment use16 assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax xor ecx, ecx mov cx, Array Next: mov ax, Array[ecx*2] add Sum, ax cmp Max, ax jge Skip1 mov Max, axSkip1: cmp Min, ax jle Skip2 mov Min, axSkip2: loop Next mov ax, Sum cwd idiv Array mov Average, axDone: mov ah, 4ch int 21hcseg ends end Start58(1)dseg segmentData1 db 1, 2, 3, 4, 5LEN = $ Data1Data2 db 1, 2, 4, 3, 5 Flag db 0Addr1 dd ?Addr2 dd ?dseg endscseg segment assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax mov si, 0 mov cx, LENCompare: mov al, Data1[si] cmp al, Data2[si] jne Different inc si loop Compare mov Flag, 1 jmp DoneDifferent: lea ax, Data1[si] mov word ptr addr1, ax mov word ptr addr1 + 2, dseg lea ax, Data2[si] mov word ptr addr2, ax mov word ptr addr2 + 2, dsegDone: mov ah, 4ch int 21hcseg ends end Start(2)dseg segmentData1 db 1, 2, 3, 4, 5LEN = $ Data1Data2 db 1, 2, 4, 3, 5 Flag db 0Addr1 dd ?Addr2 dd ?dseg endscseg segment assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax mov es, ax lea si, Data1 lea di, Data2 mov cx, LEN cldrepe cmpsb jne Different mov Flag, 1 jmp DoneDifferent: lea ax, [si1] mov word ptr addr1, ax mov word ptr addr1 + 2, ds lea ax, [di1] mov word ptr addr2, ax mov word ptr addr2 + 2, esDone: mov ah, 4ch int 21hcseg ends end Start59dseg segmentScore dw 60, 90, 30, 60, 90LEN = ( $ Score ) / 2Rank dw LEN dup (1)dseg endscseg segment assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax mov si, 0 mov cx, LENLoop1: mov ax, Score[si] push cx mov cx, LEN mov di, 0Loop2: cmp ax, Score[di] jae Skip inc Rank[si]Skip: add di, 2 loop Loop2 pop cx add si, 2 loop Loop1 mov ah, 4ch int 21hcseg ends end Start510(1) mov es, ax (2)xor ch, ch(3) cmp byte ptr es:[di], 39。Msg2 db 0dh, 0ah, 39。dseg endscseg segment assume cs:cseg, ds:dsegStart: mov ax, dseg mov ds, ax lea dx, Msg1 call DispMsg lea dx, String mov ah, 0ah int 21h lea si, String + 2 mov cl, String + 1 xor ch, ch call Digits cmp al, 0 jnz Yes lea dx, Msg3 jmp DispYes: lea dx, Msg2Disp: call DispMsg mov ah, 4ch int 21h。 jb Done cmp byte ptr [si], 39。 取J的值 les bx, [si+8] 。 N + Sum(N1)Exit: pop bp ret 2Sum endpcseg ends end Start第7章71CrLf macro push ax push dx mov dl, 0dh mov ah, 2 int 21h mov dl, 0ah mov ah, 2 int 21h pop ax endm72MoveStr macro From, To local Next, Done push ax push si push di lea si, From lea di, ToNext: mov al, [si] mov [di], al cmp al, 0 jz Done inc si inc di jmp N
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1