位匯編語(yǔ)言習(xí)題及答案(全部)(錢曉捷版).ppt
《位匯編語(yǔ)言習(xí)題及答案(全部)(錢曉捷版).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《位匯編語(yǔ)言習(xí)題及答案(全部)(錢曉捷版).ppt(115頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
32位匯編語(yǔ)言習(xí)題解答 課件制作 錢曉捷 錢曉捷 32位匯編語(yǔ)言程序設(shè)計(jì) 機(jī)械工業(yè)出版社 第1章習(xí)題 匯編語(yǔ)言基礎(chǔ) 1 1簡(jiǎn)答題 1 3 6 7 8 1 2判斷題 1 6 7 8 9 1 3填空題 3 4 5 7 10 1 9 1 13 1 15 1 16 3 1 1簡(jiǎn)答題 1 1 哪個(gè)處理器的指令系統(tǒng)成為Intel80 x86系列處理器的基本指令集 8086 3 什么是通用寄存器 一般指處理器最常使用的整數(shù)寄存器 可用于保存整數(shù)數(shù)據(jù) 地址等 6 最高有效位MSB是指哪一位 數(shù)據(jù)的最高位 例如對(duì)8 16 32位數(shù)據(jù) MSB依次指D7 D15和D31位 4 1 1簡(jiǎn)答題 2 7 匯編語(yǔ)言中的標(biāo)識(shí)符與高級(jí)語(yǔ)言的變量和常量名的組成原則有本質(zhì)的區(qū)別嗎 沒(méi)有 8 匯編語(yǔ)言的標(biāo)識(shí)符大小寫不敏感意味著什么 表示字母大小寫不同 但表示同一個(gè)符號(hào) 5 1 2判斷題 1 EAX也被稱為累加器 因?yàn)樗褂米铑l繁 對(duì) EAX中的A來(lái)自英文累加器 Accumulator 6 處理器的傳送指令MOV屬于匯編語(yǔ)言的執(zhí)行性語(yǔ)句對(duì)7 匯編語(yǔ)言的語(yǔ)句由明顯的4部分組成 不需要分隔符區(qū)別 錯(cuò) 使用了分隔符才有了明顯的4部分8 MASM匯編語(yǔ)言的注釋用分號(hào)開始 不能用中文分號(hào)對(duì) 源程序中的分隔符以及各種標(biāo)識(shí)符都是英文9 程序終止執(zhí)行也就意味著匯編結(jié)束 所以兩者含義相同 錯(cuò) 兩者完全是兩個(gè)概念 6 1 3填空題 1 3 IA 32處理器有8個(gè)32位通用寄存器 其中EAX 和EDX 可以分成16位和8位操作 還有另外4個(gè)是 和 EBX ECX ESI EDI EBP ESP 4 寄存器EDX是 位的 其中低16位的名稱是 還可以分成兩個(gè)8位的寄存器 其中D0 D7和D8 D15部分可以分別用名稱 和 表示 32 DX DL DH 5 IA 32處理器有 個(gè)段寄存器 它們都是 位的 6 16 7 1 3填空題 2 7 邏輯地址由 和 兩部分組成 代碼段中下一條要執(zhí)行的指令由CS和 寄存器指示 后者在實(shí)地址模型中起作用的僅有 寄存器部分 段基地址 偏移地址 EIP IP 10 MASM要求匯編語(yǔ)言源程序文件的擴(kuò)展名是 匯編產(chǎn)生擴(kuò)展名為OBJ的文件被稱為 文件 編寫32位Windows應(yīng)用程序應(yīng)選擇 存儲(chǔ)模型 ASM 目標(biāo)模塊 FLAT 8 習(xí)題1 9 IA 32處理器有哪三類基本段 各是什么用途 解答 代碼段 存放程序的指令代碼數(shù)據(jù)段 存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù)堆棧段 主存中堆棧所在的區(qū)域 9 習(xí)題1 13 匯編語(yǔ)言語(yǔ)句有哪兩種 每種語(yǔ)句由哪4個(gè)部分組成解答 匯編語(yǔ)句有兩種執(zhí)行性語(yǔ)句 處理器指令 說(shuō)明性語(yǔ)句 偽指令 每個(gè)語(yǔ)句有4部分組成標(biāo)號(hào)指令助記符操作數(shù)或參數(shù)注釋 10 習(xí)題1 15 MASM匯編語(yǔ)言中 下面哪些是程序員可以使用的自定義標(biāo)識(shí)符 FFH DS Again next data h ascii 6364b flat解答 FFH Again next h ascii其他符號(hào)錯(cuò)誤的原因 DS是數(shù)據(jù)段寄存器名6364b是數(shù)字開頭 data是匯編語(yǔ)言使用預(yù)定義符號(hào) 表示數(shù)據(jù)段地址flat是表示平展存儲(chǔ)模型的關(guān)鍵字 11 習(xí)題1 16 匯編語(yǔ)言程序的開發(fā)有哪4個(gè)步驟 分別利用什么程序完成 產(chǎn)生什么輸出文件 解答 匯編語(yǔ)言程序的開發(fā)有4個(gè)步驟 編輯 用文本編輯器形成一個(gè)以ASM為擴(kuò)展名的源程序文件 匯編 用匯編程序?qū)SM文件轉(zhuǎn)換為OBJ模塊文件 連接 用連接程序?qū)⒁粋€(gè)或多個(gè)目標(biāo)文件鏈接成一個(gè)EXE或COM可執(zhí)行文件 調(diào)試 用調(diào)試程序排除錯(cuò)誤 生成正確的可執(zhí)行文件 第2章習(xí)題 數(shù)據(jù)表示和尋址 2 1簡(jiǎn)答題 2 3 4 7 8 2 2判斷題 2 4 8 9 10 2 3填空題 1 2 3 8 9 2 10 2 14 2 15 2 17 13 2 1簡(jiǎn)答題 1 2 字符 F 和數(shù)值46H作為MOV指令的源操作數(shù)有區(qū)別嗎 沒(méi)有 因?yàn)樽址?F 的ASCII碼就是數(shù)值46H 3 為什么可以把指令 MOVEAX 34 67H 3 中的數(shù)值表達(dá)式看成是常量 匯編程序在匯編過(guò)程中對(duì)數(shù)值表達(dá)式計(jì)算 得到一個(gè)確定的數(shù)值 故稱數(shù)值表達(dá)式為常量 4 匯編語(yǔ)言為什么規(guī)定十六進(jìn)制數(shù)若以A F開頭 需要在前面加個(gè)0 以便與標(biāo)識(shí)符區(qū)別 因?yàn)闃?biāo)識(shí)符要求以字母 或特殊符號(hào) 開頭 14 2 1簡(jiǎn)答題 2 7 為什么將查找操作數(shù)的方法稱為數(shù)據(jù)尋 址 方式 指令的操作數(shù)需要通過(guò)存儲(chǔ)器地址或I O地址 才能查找到數(shù)據(jù)本身 故稱數(shù)據(jù)尋址方式 8 為什么變量VAR在指令 MOVEAX VAR 中表達(dá)直接尋址 因?yàn)檫@里的變量名VAR實(shí)際上表達(dá)了從變量所存放的主存單元 即 地址 15 2 2判斷題 1 2 常用的BCD碼為8421BCD碼 其中的8表示D3位的權(quán)重 對(duì) 4 用 BYTE 和 DWORD 定義變量 如果初值相同 則占用的存儲(chǔ)空間也一樣多 錯(cuò) 用BYTE只占一個(gè)存儲(chǔ)單元 而DWORD要占4個(gè)存儲(chǔ)單元 8 立即數(shù)尋址只會(huì)出現(xiàn)在源操作數(shù)中 對(duì) 16 2 2判斷題 2 9 存儲(chǔ)器尋址方式的操作數(shù)當(dāng)然在主存了 對(duì) 10 指令 MOVEAX VAR 2 與 MOVEAX VAR 2 功能相同 對(duì) 僅是不同的形式罷了 17 2 3填空題 1 1 計(jì)算機(jī)中有一個(gè) 01100001 編碼 如果把它認(rèn)為是無(wú)符號(hào)數(shù) 它是十進(jìn)制數(shù) 如果認(rèn)為它是BCD碼 則表示真值 又如果它是某個(gè)ASCII碼 則代表字符 97 61 小寫字母a 2 C語(yǔ)言用 n 表示讓光標(biāo)回到下一行首位 在匯編語(yǔ)言中需要輸出兩個(gè)控制字符 一個(gè)是回車 其ASCII碼是 它將光標(biāo)移動(dòng)到當(dāng)前所在行的首位 另一個(gè)是換行 其ASCII碼是 它將光標(biāo)移到下一行 0DH 13 0AH 10 18 2 3填空題 2 3 定義字節(jié)變量的偽指令助記符是 獲取變量名所具有的偏移地址的操作符是 BYTE OFFSET 8 指令 MOVEAX OFFSETMSG 的目的操作數(shù)和源操作數(shù)分別采用 和 尋址方式 寄存器尋址 立即數(shù)尋址 9 已知ESI 04000H EBX 20H 指令 MOVEAX ESI EBX 2 8 中訪問(wèn)的有效地址是 04000H 20H 2 8 04048H 19 習(xí)題2 10 1 按照如下要求定義變量或符號(hào)常量 1 my1b為字符串變量 PersonalComputermy1bbyte PersonalComputer 2 my2b為用十進(jìn)制數(shù)表示的字節(jié)變量 20my2bbyte20 3 my3b為用十六進(jìn)制數(shù)表示的字節(jié)變量 20my3bbyte14h 4 my4b為用二進(jìn)制數(shù)表示的字節(jié)變量 20my4bbyte00010100b 20 習(xí)題2 10 2 按照如下要求定義變量或符號(hào)常量 5 my5w為20個(gè)未賦值的字變量my5wword20dup 6 my6c為100的常量my6c 100 7 my7c表示字符串 PersonalComputermy7cequ 21 習(xí)題2 14 按照如下輸出格式 在屏幕上顯示ASCII表編程在數(shù)據(jù)段直接構(gòu)造這樣的表格 填寫相應(yīng)ASCII代碼值 不是字符本身 然后使用字符串顯示子程序DISPMSG實(shí)現(xiàn)顯示 22 習(xí)題2 14解答1 datatablebyte 0123456789ABCDEF 13 10byte 13 10byte 20 20h 20h 21h 20h 22h 20h 23h 20h 24h 20h 25h 20h 26h 20h 27h 20h 28h 20h 29h 20hbyte2ah 20h 2bh 20h 2ch 20h 2dh 20h 2eh 20h 2fh 20h 13 10byte 30 30h 20h 31h 20h 32h 20h 33h 20h 34h 20h 35h 20h 36h 20h 37h 20h 38h 20h 39h 20hbyte3ah 20h 3bh 20h 3ch 20h 3dh 20h 3eh 20h 3fh 20h 13 10 byte0 23 習(xí)題2 14解答2 ca 2 cas 20hbyteca 0 cas 20h cas 1 20h cas 2 20h cas 3 20h cas 4 20h cas 5 20h cas 6 20h cas 7 20hbytecas 8 20h cas 9 20h cas 0ah 20h cas 0bh 20h cas 0ch 20h cas 0dh 20h cas 0eh 20h cas 0fh 20h 13 10cas cas 10hca ca 1byteca 0 cas 20h cas 1 20h cas 2 20h cas 3 20h cas 4 20h cas 5 20h cas 6 20h cas 7 20hbytecas 8 20h cas 9 20h cas 0ah 20h cas 0bh 20h cas 0ch 20h cas 0dh 20h cas 0eh 20h cas 0fh 20h 13 10 24 習(xí)題2 15 數(shù)據(jù)段有如下定義 vardword12345678h現(xiàn)以字節(jié)為單位按地址從低到高的順序 寫出這個(gè)變量?jī)?nèi)容 var變量的內(nèi)容 78H 56H 34H 12H并說(shuō)明如下指令的執(zhí)行結(jié)果 moveax var EAX 12345678Hmovbx wordptrvar BX 5678Hmovcx wordptrvar 2 CX 1234Hmovdl byteptrvar DL 78Hmovdh byteptrvar 3 DH 12H 25 習(xí)題2 17 說(shuō)明源操作數(shù)的尋址方式 1 movedx 1234h立即數(shù) 2 movedx vard直接 3 movedx ebx寄存器 4 movedx ebx 寄存器間接 5 movedx ebx 1234h 寄存器相對(duì) 6 movedx vard ebx 寄存器相對(duì) 7 movedx ebx edi 基址變址 8 movedx ebx edi 1234h 相對(duì)基址變址 9 movedx vard esi edi 相對(duì)基址變址 10 movedx ebp 4 帶比例尋址 第3章習(xí)題 通用數(shù)據(jù)處理指令 3 1簡(jiǎn)答題 1 2 5 7 9 3 2判斷題 1 4 5 7 10 3 3填空題 2 4 5 8 10 3 4 3 6 3 11 3 14 3 163 21 3 22 27 3 1簡(jiǎn)答題 1 1 如何修改 MOVESI WORDPTR250 語(yǔ)句使其正確 刪除 WORDPTR 即可 2 為什么說(shuō) XCHGEDX CX 是一條錯(cuò)誤的指令 源 目標(biāo)寄存器位數(shù)不同 不能用該指令進(jìn)行數(shù)據(jù)交換 5 執(zhí)行了一條加法指令后 發(fā)現(xiàn)ZF 1 說(shuō)明結(jié)果是什么 5 表明運(yùn)算結(jié)果為0 28 3 1簡(jiǎn)答題 2 7 大小寫字母轉(zhuǎn)換使用了什么規(guī)律 大小寫字母轉(zhuǎn)換利用它們的ASCII碼相差20H 9 除法指令 DIVESI 的被除數(shù)是什么 被除數(shù)64位 在EDX和EAX中 EDX保存高32位 EAX保存低32位 29 3 2判斷題 1 1 指令 MOVEAX 0 使EAX結(jié)果為0 所以標(biāo)志ZF 1 錯(cuò) MOV指令不影響標(biāo)志 4 雖然ADD指令和SUB指令執(zhí)行后會(huì)影響標(biāo)志狀態(tài) 但執(zhí)行前的標(biāo)志并不影響它們的執(zhí)行結(jié)果 對(duì) 5 80減90 80 90 需要借位 所以執(zhí)行結(jié)束后 進(jìn)位標(biāo)志CF 1 對(duì) 減法時(shí)借位也用CF標(biāo)志反映 30 3 2判斷題 2 7 無(wú)符號(hào)數(shù)在前面加零擴(kuò)展 數(shù)值不變 有符號(hào)數(shù)前面進(jìn)行符號(hào)擴(kuò)展 位數(shù)加長(zhǎng)一位 數(shù)值增加一倍 錯(cuò) 符號(hào)擴(kuò)展也不改變數(shù)值大小 10 SHL指令左移一位 就是乘10 錯(cuò) 左移一位 相當(dāng)于乘2 這里的位是二進(jìn)制比特位 31 3 3填空題 1 2 指令 POPEDX 的功能也可以用MOV和ADD指令實(shí)現(xiàn) 依次應(yīng)該是 和 指令 MOVEDX ESP ADDESP 4 4 進(jìn)行8位二進(jìn)制數(shù)加法 BAH 6CH 8位結(jié)果是 標(biāo)志PF 如果進(jìn)行16位二進(jìn)制數(shù)加法 45BAH 786CH 16位結(jié)果是 標(biāo)志PF 26H 0 BE26H 0 32 3 3填空題 2 5 已知AX 98H 執(zhí)行 NEGAX 指令后 AX 標(biāo)志SF 68H 0 8 指令 XOREAX EAX 和 SUBEAX EAX 執(zhí)行后 EAX CF OF 而指令 MOVEAX 0 執(zhí)行后 EAX CF和OF沒(méi)有變化 0 0 0 10 欲將EDX內(nèi)的無(wú)符號(hào)數(shù)除以16 使用指令 SHREDX 其中后一個(gè)操作數(shù)是一個(gè)立即數(shù) 4 33 習(xí)題3 4 請(qǐng)給每種組合各舉一個(gè)實(shí)例 1 movreg imm 2 movmem imm 3 movreg reg 4 movmem reg 5 movseg reg 6 movreg mem 7 movseg mem 8 movreg seg 9 movmem seg 34 習(xí)題3 6 使用MOV指令實(shí)現(xiàn)交換指令 XCHGEBX EDI 功能 解答 moveax ebxmovebx edi mov edi eax 35 習(xí)題3 11 1 執(zhí)行如下程序片斷 說(shuō)明每條指令的執(zhí)行結(jié)果 1 moveax 80h EAX 80Haddeax 3 EAX 83H CF 0 SF 0addeax 80h EAX 103H CF 0 OF 0adceax 3 EAX 106H CF 0 ZF 0 36 習(xí)題3 11 2 執(zhí)行如下程序片斷 說(shuō)明每條指令的執(zhí)行結(jié)果 2 moveax 100 EAX 100 64H addax 200 EAX 300 12CH CF 0 3 moveax 100 EAX 100 64H addal 200 EAX 44 2CH CF 1 包含256的進(jìn)位含義 256 44 300 37 習(xí)題3 11 3 執(zhí)行如下程序片斷 說(shuō)明每條指令的執(zhí)行結(jié)果 4 moval 7fh AL 7FHsubal 8 AL 77H CF 0 SF 0subal 80h AL F7H CF 1 OF 1sbbal 3 AL F3H CF 0 ZF 0 38 習(xí)題3 14 1 請(qǐng)分別用一條匯編語(yǔ)言指令完成如下功能 1 把EBX寄存器和EDX寄存器的內(nèi)容相加 結(jié)果存入EDX寄存器 addedx ebx 2 用寄存器EBX和ESI的基址變址尋址方式把存儲(chǔ)器的一個(gè)字節(jié)與AL寄存器的內(nèi)容相加 并把結(jié)果送到AL中 addal ebx esi 39 習(xí)題3 14 2 請(qǐng)分別用一條匯編語(yǔ)言指令完成如下功能 3 用EBX和位移量0B2H的寄存器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)雙字和ECX寄存器的內(nèi)容相加 并把結(jié)果送回存儲(chǔ)器中 add ebx 0b2h ecx 4 將32位變量VARD與數(shù)3412H相加 并把結(jié)果送回該存儲(chǔ)單元中 addvarw 3412h 5 把數(shù)0A0H與EAX寄存器的內(nèi)容相加 并把結(jié)果送回EAX中 addeax 0a0h 40 習(xí)題3 16 1 執(zhí)行如下程序片斷 說(shuō)明每條指令的執(zhí)行結(jié)果 1 movesi 10011100b ESI 9CHandesi 80h ESI 80Horesi 7fh ESI FFHxoresi 0feh ESI 01H 2 moveax 1010b EAX 1010B 可有前導(dǎo)0 shreax 2 EAX 0010B CF 1shleax 1 EAX 0100B CF 0andeax 3 EAX 0000B CF 0 41 習(xí)題3 16 2 執(zhí)行如下程序片斷 說(shuō)明每條指令的執(zhí)行結(jié)果 3 moveax 1011b EAX 1011B 可有前導(dǎo)0 roleax 2 EAX 101100B CF 0rcreax 1 EAX 10110B CF 0oreax 3 EAX 10111B CF 0 4 xoreax eax EAX 0 CF 0 OF 0 ZF 1 SF 0 PF 1 42 習(xí)題3 21 如下程序片段實(shí)現(xiàn)EAX乘以某個(gè)數(shù)X的功能 請(qǐng)判斷X 請(qǐng)使用一條乘法指令實(shí)現(xiàn)上述功能 movecx eaxshleax 3leaeax eax eax 8 subeax ecx解答 8 8 8 1 71imuleax 71 43 習(xí)題3 22 請(qǐng)使用移位和加減法指令編寫一個(gè)程序片段計(jì)算 EAX 21 假設(shè)乘積不超過(guò)32位 提示 21 24 22 20 解答 movebx eax EBX EAX 20shlebx 2 EBX EAX 22addeax ebx EAX EAX 22 20 shlebx 2 EBX EAX 24addeax ebx EAX EAX 24 22 20 第4章習(xí)題 程序結(jié)構(gòu) 4 1簡(jiǎn)答題 2 5 6 9 10 4 2判斷題 2 4 6 7 10 4 3填空題 2 3 4 5 6 4 4 4 7 4 15 4 17 4 27 4 29 45 4 1簡(jiǎn)答題 1 2 數(shù)據(jù)的直接尋址和指令的直接尋址有什么區(qū)別 數(shù)據(jù)的直接尋址給出數(shù)據(jù)所在的存儲(chǔ)器地址 指令的直接尋址給出指令所在的存儲(chǔ)器地址 5 什么是奇偶校驗(yàn) 數(shù)據(jù)通信時(shí) 數(shù)據(jù)的某一位用做傳輸數(shù)據(jù)的奇偶校驗(yàn)位 數(shù)據(jù)中包括校驗(yàn)位在內(nèi)的 1 的個(gè)數(shù)恒為奇數(shù) 就是奇校驗(yàn) 恒為偶數(shù) 就是偶校驗(yàn) 6 助記符JZ和JE為什么表達(dá)同一條指令 兩個(gè)數(shù)相減 差值為0 JZ 與兩個(gè)數(shù)相等 JE 是一個(gè)含義 46 4 1簡(jiǎn)答題 2 9 如果循環(huán)體的代碼量遠(yuǎn)超過(guò)128個(gè)字節(jié) 還能用LOOP指令實(shí)現(xiàn)計(jì)數(shù)控制循環(huán)嗎 不能 因?yàn)長(zhǎng)OOP指令的目標(biāo)地址采用相對(duì)短轉(zhuǎn)移 只能在 128 127字節(jié)之間循環(huán) 10 什么是 先循環(huán) 后判斷 循環(huán)結(jié)構(gòu) 指先執(zhí)行循環(huán)體 然后判斷是否繼續(xù)循環(huán)的結(jié)構(gòu) 這種結(jié)構(gòu)通常至少執(zhí)行一次循環(huán)體 47 4 2判斷題 2 指令的相對(duì)尋址都是近轉(zhuǎn)移 對(duì)4 JMP指令對(duì)應(yīng)高級(jí)語(yǔ)言的GOTO語(yǔ)句 所以不能使用錯(cuò) 需要使用6 JA和JG指令的條件都是 大于 所以是同一個(gè)指令的兩個(gè)助記符 錯(cuò) JA針對(duì)無(wú)符號(hào)數(shù) JG針對(duì)有符號(hào)數(shù)7 JC和JB的條件都是CF 1 所以是同一條指令 對(duì) 無(wú)符號(hào)小于 JB 必然借位 JC 10 若ECX 0 則LOOP指令和JECX指令都發(fā)生轉(zhuǎn)移 對(duì) 48 4 3填空題 1 2 MASM給短轉(zhuǎn)移 近轉(zhuǎn)移和遠(yuǎn)轉(zhuǎn)移定義的類型名依次是 和 SHORT NEAR FAR 3 假設(shè)在平展存儲(chǔ)模型下 EBX 1256H 雙字變量TABLE的偏移地址是20A1H 線性地址32F7H處存放3280H 執(zhí)行指令 JMPEBX 后EIP 執(zhí)行指令 JMPTABLE EBX 后EIP 1256H 3280H 49 4 3填空題 2 4 CMPEAX 3721H 指令之后是JZ指令 發(fā)生轉(zhuǎn)移的條件是EAX 此時(shí)ZF 3721H 1 5 執(zhí)行 SHREBX 4 指令后 JNC發(fā)生轉(zhuǎn)移 說(shuō)明EBX的D3 0 6 在EDX等于0時(shí)轉(zhuǎn)移 可以使用指令 CMPEDX 也可以使用 TESTEDX 構(gòu)成條件 然后使用JE指令實(shí)現(xiàn)轉(zhuǎn)移 0 EDX 50 習(xí)題4 4 已知var1 var2 var3和var4是32位無(wú)符號(hào)整數(shù) 用匯編語(yǔ)言程序片段實(shí)現(xiàn)如下C 語(yǔ)句 var4 var1 6 var2 7 var3moveax var1movebx 6mulebx var1 6movebx var2subebx 7 var2 7divebx var1 6 var2 7 addeax var3 var1 6 var2 7 var3movvar4 eax 51 習(xí)題4 7 定義COUNT 假設(shè)為10 個(gè)元素的32位數(shù)組 輸入元素編號(hào) 0 COUNT 1 利用DISPHD子程序輸出其地址 利用DISPSID子程序輸出其值 數(shù)據(jù)段count 10arraydword0 1 2 3 4 5 6 7 8 9 代碼段callreaduid 輸入N 小于10leaeax array eax 4 EAX 地址calldisphd 顯示地址moveax array eax 4 EAX 變量值calldispsid 顯示數(shù)值 52 習(xí)題4 15 1 IA 32處理器的指令CDQ將EAX符號(hào)擴(kuò)展到EDX 假若沒(méi)有該指令 編程實(shí)現(xiàn)該指令功能 1 按照符號(hào)擴(kuò)展的含義編程 即 EAX最高為0 則EDX 0 EAX最高為1 則EDX FFFFFFFFH testeax 8000h 測(cè)試最高位jznext1 最高位為0 轉(zhuǎn)移movedx 0ffffffffh 最高位為1 設(shè)置EDX FFFFFFFFHjmpdone 跳過(guò)另一個(gè)分支next1 movdx 0 設(shè)置EDX 0done 53 習(xí)題4 15 2 編程實(shí)現(xiàn)指令CDQ 將EAX符號(hào)擴(kuò)展到EDX 2 使用移位等指令進(jìn)行優(yōu)化編程 方法1 movedx eaxsaredx 31方法2 roleax 1rcredx 1saredx 31roreax 1 54 習(xí)題4 17 1 編寫一個(gè)程序 先提示輸入數(shù)字 InputNumber 0 9 然后在下一行顯示輸入的數(shù)字 結(jié)束 如果不是鍵入了0 9數(shù)字 就提示錯(cuò)誤 Error 繼續(xù)等待輸入數(shù)字 方法1 使用字符輸入輸出子程序 數(shù)據(jù)段inmsgbyte Inputnumber 0 9 0ermsgbyte0dh 0ah Error Inputagain 0 代碼段moveax offsetinmsg 提示輸入數(shù)字calldispmsg 55 習(xí)題4 17 2 方法1 使用字符輸入輸出子程序again callreadc 等待按鍵cmpal 0 數(shù)字9 jaerdispcalldispcrlfcalldispcjmpdone erdisp moveax offsetermsgcalldispmsgjmpagaindone 56 習(xí)題4 17 3 方法2 使用數(shù)字輸入輸出子程序again callreaduid callreadsidcmpeax 0 數(shù)字9 jaerdisp jgerdispcalldispuid calldispsidjmpdoneerdisp moveax offsetermsgcalldispmsgjmpagain 57 習(xí)題4 27 1 習(xí)題2 14在屏幕上顯示ASCII表 現(xiàn)僅在數(shù)據(jù)段設(shè)置表格緩沖區(qū) 編程將ASCII代碼值填入留出位置的表格 然后調(diào)用顯示功能實(shí)現(xiàn) 需要利用雙重循環(huán) tablebyte 0123456789ABCDEF 13 10byte 13 10tab1byte6dup 36dup 13 10 byte0 58 習(xí)題4 27 2 movebx offsettab1movedx 02 movax 2020hmovesi 6again0 mov ebx edxaddebx 4movecx 16again1 movwordptr ebx axaddebx 2incalloopagain1 59 習(xí)題4 27 3 addebx 2addedx 1decesijnzagain0moveax offsettablecalldispmsg 60 習(xí)題4 29素?cái)?shù)判斷程序 1 1 采用直接簡(jiǎn)單的算法 假設(shè)輸入N 將其逐個(gè)除以2 N 1 只要能整除 余數(shù)為0 說(shuō)明不是素?cái)?shù) 只有都不能整除才是素?cái)?shù) 1 核心程序片段如下 cmpeax 3jbedoney 小于等于3的都是素?cái)?shù)cdqmovesi eax EDI ESI N 3movedi edxmovebx 2 EBX從2開始 61 習(xí)題4 29素?cái)?shù)判斷程序 2 again divebxtestedx edxjzdonen 余數(shù)為0 能整除 不是素?cái)?shù)incebxcmpebx esi EBX到N 1結(jié)束moveax esimovedx edijbagain 62 習(xí)題4 29素?cái)?shù)判斷程序 3 2 采用只對(duì)奇數(shù)整除的算法 1 2和3是素?cái)?shù) 所有大于3的偶數(shù)不是素?cái)?shù) 從5開始的數(shù)字只要除以從3開始的奇數(shù) 只有都不能整除才是素?cái)?shù) 提示 排除4的情況 從3開始除 每次循環(huán)加2movebx 3 addebx 2 第5章習(xí)題 模塊化程序設(shè)計(jì) 5 1簡(jiǎn)答題 1 4 5 6 7 5 2判斷題 2 5 6 7 8 5 3填空題 1 4 5 6 7 5 7 5 8 5 11 5 13 64 5 1簡(jiǎn)答題 1 1 指令 CALLEBX 采用了指令的什么尋址方式 寄存器間接尋址 4 參數(shù)傳遞的 傳值 和 傳址 有什么區(qū)別 傳值是傳遞參數(shù)的拷貝 傳址是傳遞參數(shù)的地址 5 子程序采用堆棧傳遞參數(shù) 為什么要特別注意堆棧平衡問(wèn)題 子程序保持堆棧平衡才能保證正確返回主程序保持堆棧平衡 才能釋放傳遞參數(shù)占用的堆??臻g 否則多次調(diào)用該子程序可能致使堆棧溢出 65 5 1簡(jiǎn)答題 2 6 INCLUDE語(yǔ)句和INCLUDELIB有什么區(qū)別 INCLUDE語(yǔ)句包含的是文本文件 是源程序文件的一部分 INCLUDELIB語(yǔ)句包含的是子程序庫(kù)文件 7 什么是子程序庫(kù) 子程序庫(kù)就是子程序模塊的集合 其中存放著各子程序的名稱 目標(biāo)代碼以及有關(guān)定位信息 便于子程序的管理和調(diào)用 66 5 2判斷題 1 2 CALL指令的執(zhí)行并不影響堆棧指針ESP 錯(cuò) 要改變 因?yàn)榉祷氐刂芬獕喝攵褩?5 子程序需要保護(hù)寄存器 包括保護(hù)傳遞入口參數(shù)和出口參數(shù)的通用寄存器 錯(cuò) 不能保護(hù)傳遞出口參數(shù)的寄存器 6 利用INCLUDE包含的源文件實(shí)際上只是源程序的一部分 對(duì) 67 5 2判斷題 2 7 宏調(diào)用與子程序調(diào)用一樣都要使用CALL指令實(shí)現(xiàn) 錯(cuò) 宏調(diào)用是通過(guò)宏展開實(shí)現(xiàn)的調(diào)用 不用CALL指令 8 宏定義與子程序一樣一般書寫與主程序之后 錯(cuò) 宏需要先定義后調(diào)用 一般在源程序開頭部分 68 5 3填空題 1 1 指令 RETi16 的功能相當(dāng)于 RET 指令和 ADDESP 組合 i16 4 數(shù)值10在計(jì)算機(jī)內(nèi)部用二進(jìn)制 1010 編碼表示 用十六進(jìn)制表達(dá)是 如果將該編碼加37H 則為 它是字符 的ASCII碼值 A 41H A 5 利用堆棧傳遞子程序參數(shù)的方法是固定的 例如尋址堆棧段數(shù)據(jù)的寄存器是 EBP 69 5 3填空題 2 6 MASM匯編語(yǔ)言中 聲明一個(gè)共用的變量應(yīng)使用 偽指令 而使用外部變量要使用 偽指令聲明 PUBLIC EXTERN 7 過(guò)程定義開始是 TESTPROC 語(yǔ)句 則過(guò)程定義結(jié)束的語(yǔ)句是 宏定義開始是 DISPMACRO 語(yǔ)句 則宏定義結(jié)束的語(yǔ)句是 TESTENDP ENDM 70 習(xí)題5 7 1 編寫一個(gè)源程序 在鍵盤上按一個(gè)鍵 將其返回的ASCII碼值顯示出來(lái) 如果按下退格鍵 對(duì)應(yīng)ASCII碼是08H 則程序退出 請(qǐng)調(diào)用書中的HTOASC子程序 代碼段 主程序again callreadccmpal 08h 退格鍵BS 08Hjzdonemovbl almoval calldispc 71 習(xí)題5 7 2 moval blrolal 4callhtoasc 調(diào)用子程序calldispc 顯示一個(gè)字符moval blcallhtoasc 調(diào)用子程序calldispc 顯示一個(gè)字符calldispcrlfjmpagaindone 72 習(xí)題5 8 1 編寫一個(gè)子程序 它以二進(jìn)制形式顯示EAX中32位數(shù)據(jù) 并設(shè)計(jì)一個(gè)主程序驗(yàn)證 代碼段 主程序moveax 8F98FF00Hcalldispbd 調(diào)用子程序 代碼段 子程序dispbdproc 32位二進(jìn)制數(shù)的輸出pushecxmovecx 32 要輸出的字符個(gè)數(shù)dbd roleax 1 AL循環(huán)左移一位 73 習(xí)題5 8 2 pusheaxandal 01h 取AL最低位addal 30h 轉(zhuǎn)化成相應(yīng)的ASCLL碼值calldispc 以二進(jìn)制的形式顯示popeaxloopdbdpopecxretdispbdendp 74 習(xí)題5 11 計(jì)算字節(jié)校驗(yàn)和的通用過(guò)程 入口參數(shù) DS EBX 數(shù)組的段地址 偏移地址ECX 元素個(gè)數(shù) 出口參數(shù) AL 校驗(yàn)和 說(shuō)明 除EAX EBX ECX外 不影響其他寄存器checksumprocxoral al 累加器清0sum addal ebx 求和incebx 指向下一個(gè)字節(jié)loopsumretchecksumendp 75 習(xí)題5 13 1 利用十六進(jìn)制字節(jié)顯示子程序DISPHB設(shè)計(jì)一個(gè)從低地址到高地址逐個(gè)字節(jié)顯示某個(gè)主存區(qū)域內(nèi)容的子程序DISPMEM 其入口參數(shù) EAX 主存偏移地址 ECX 字節(jié)個(gè)數(shù) 主存區(qū)域的長(zhǎng)度 同時(shí)編寫一個(gè)主程序進(jìn)行驗(yàn)證 數(shù)據(jù)段varbyte Thisisatest 主程序moveax offsetvarmovecx sizeofvarcalldispmem 76 習(xí)題5 13 2 子程序dispmemprocpushebxmovebx eaxdispm1 cmpecx 0jzdispm2moval ebx calldisphbmoval calldispc incebxdececxjmpdispm1dispm2 popebxretdispmemendp 第6章習(xí)題 Windows編程 6 1簡(jiǎn)答題 3 5 6 7 6 2判斷題 1 3 4 6 3填空題 1 3 6 6 4 6 6 6 7 78 6 1簡(jiǎn)答題 1 3 運(yùn)行Windows應(yīng)用程序 有時(shí)為什么會(huì)提示某個(gè)DLL文件不存在 Windows程序在運(yùn)行時(shí)需要加載其配套的動(dòng)態(tài)連接庫(kù)DLL文件 當(dāng)其沒(méi)有被搜索到時(shí)就會(huì)提示不存在 5 ExitProcess函數(shù)可以按匯編語(yǔ)言習(xí)慣全部使用小寫字母表示嗎 不能 因?yàn)閃indows的API函數(shù)按照C語(yǔ)言習(xí)慣區(qū)別大小寫字母 是不同的 79 6 1簡(jiǎn)答題 2 6 Win32API中可以使用哪兩種字符集 8位的ASCII字符集和16位的Unicode字符集 7 為什么調(diào)用API函數(shù)之后 ECX等寄存器改變了 因?yàn)锳PI函數(shù)并不是按照匯編語(yǔ)言的規(guī)則編寫的 它的規(guī)則是不保護(hù)它們 80 6 2判斷題 1 Windows可執(zhí)行文件中包含動(dòng)態(tài)連接庫(kù)中的代碼 錯(cuò) 不含 運(yùn)行時(shí)才加載 3 INVOKE語(yǔ)句只能傳遞主存操作數(shù) 不能傳遞寄存器值 錯(cuò) 可以使用寄存器參數(shù) 4 Windows控制臺(tái)是命令行窗口 也就是MS DOS窗口 錯(cuò) Windows控制臺(tái)與DOS窗口本質(zhì)不同 81 6 3填空題 1 Windows系統(tǒng)有3個(gè)最重要的系統(tǒng)動(dòng)態(tài)連接庫(kù)文件 它們是 和 KERNEL32 DLL USER32 DLL GDI32 DLL 3 獲得句柄函數(shù)GetStdHandle執(zhí)行結(jié)束 使用 提供返回結(jié)果 EAX 6 WriteConsole和ReadConsole函數(shù)的參數(shù)類似 都有5個(gè) 第1個(gè)參數(shù)是 第2個(gè)參數(shù)是輸出或輸入緩沖區(qū)的 第3個(gè)參數(shù)是輸出或輸入的字符 第4個(gè)參數(shù)指向?qū)嶋H輸出或輸入字符個(gè)數(shù)的變量 最后1個(gè)參數(shù)一般要求代入 句柄實(shí)例 地址 個(gè)數(shù) 0 82 習(xí)題6 4 1 執(zhí)行CPUID指令 直接使用控制臺(tái)輸出函數(shù)將處理器識(shí)別字符串顯示出來(lái) 686 modelflat stdcalloptioncasemap noneincludelibbin kernel32 libExitProcessproto dword 83 習(xí)題6 4 2 GetStdHandleproto dwordWriteConsoleA proto dword dword dword dword dwordWriteConsoleequSTD OUTPUT HANDLE 11 dataouthandledword outbufferbyte Theprocessor 12dup 0 outbufsize sizeofoutbufferoutsizedword 84 習(xí)題6 4 3 moveax 0cpuid 執(zhí)行處理器識(shí)別指令movdwordptroutbuffer outbufsize 12 ebxmovdwordptroutbuffer outbufsize 8 edxmovdwordptroutbuffer outbufsize 4 ecxinvokeGetStdHandle STD OUTPUT HANDLEmovouthandle eaxinvokeWriteConsole outhandle addroutbuffer outbufsize addroutsize 0invokeExitProcess 0 85 習(xí)題6 6 1 直接使用控制臺(tái)輸出函數(shù)實(shí)現(xiàn)主存區(qū)域內(nèi)容的顯示顯示形式每行顯示16個(gè)字節(jié) 128位 每行開始先顯示首個(gè)主存單元的偏移地址然后用冒號(hào)分隔主存內(nèi)容 86 習(xí)題6 6 2 datavarbyte Thisisatest ABCDEFG 0123456789 outsizedword outhandledword membufferbyte57dup 20h 13 10 codestart moveax offsetvarmovecx sizeofvarcalldispmeminvokeExitProcess 0 87 習(xí)題6 6 3 dispmemproctestecx ecx 個(gè)數(shù)為0 不顯示jzdispm11 退出pushadmovesi ecx ESI 要顯示內(nèi)容的字節(jié)數(shù)movedi eax EDI 要顯示內(nèi)容的地址invokeGetStdHandle STD OUTPUT HANDLEmov outhandle eax 獲得輸出句柄 88 習(xí)題6 6 4 1 顯示緩沖區(qū)全部填充為空格dispm1 xorebx ebx 指示顯示緩沖區(qū)dispm2 mov membuffer ebx incebxcmpebx sizeof membuffer 2jbdispm2 2 顯示內(nèi)容所在的存儲(chǔ)器地址xorebx ebxmovecx 8 地址是十六進(jìn)制8位moveax edi 89 習(xí)題6 6 5 dispm3 roleax 4movdl alanddl 0fhordl 30hcmpdl 39hjbedispm4adddl 7dispm4 mov membuffer ebx dlincebxloopdispm3mov membuffer ebx 顯示冒號(hào)addebx 2 90 習(xí)題6 6 6 movecx 16 一行最多顯示16個(gè)字節(jié) 3 顯示一個(gè)字節(jié)內(nèi)容dispm5 moval edi movdl alshrdl 4ordl 30hcmpdl 39hjbedispm6adddl 7dispm6 mov membuffer ebx dlincebx 91 習(xí)題6 6 7 andal 0fhoral 30hcmpal 39hjbedispm7addal 7dispm7 mov membuffer ebx aladdebx 2incedi 指向下一個(gè)要顯示的字節(jié)decesijzdispm10 沒(méi)有要顯示的內(nèi)容 退出loopdispm5 92 習(xí)題6 6 8 invokeWriteConsole outhandle addr membuffer sizeof membuffer addr outsize 0jmpdispm1dispm10 invokeWriteConsole outhandle addr membuffer sizeof membuffer addr outsize 0popaddispm11 retdispmemendp 93 習(xí)題6 7 1 執(zhí)行CPUID指令 在消息窗口顯示處理器識(shí)別字符串 要求該消息窗有OK和Cancel兩個(gè)按鈕 MessageBoxAproto dword dword dword dwordMessageBoxequNULLequ0MB OKequ1 dataszCaptionbyte 消息窗口 0outbufferbyte 本機(jī)的處理器是 12dup 0 0outbufsize sizeofoutbuffer 1 94 習(xí)題6 7 2 codestart moveax 0cpuid 執(zhí)行處理器識(shí)別指令movdwordptroutbuffer outbufsize 12 ebxmovdwordptroutbuffer outbufsize 8 edxmovdwordptroutbuffer outbufsize 4 ecxinvokeMessageBox NULL addroutbuffer addrszCaption MB OKinvokeExitProcess NULLendstart 第7章習(xí)題 與VisualC 的混合編程 7 1簡(jiǎn)答題 1 3 5 6 7 2判斷題 5 6 7 7 3填空題 1 4 5 7 4 7 6 96 7 1簡(jiǎn)答題 1 什么是混合編程 組合多種程序設(shè)計(jì)語(yǔ)言 通過(guò)相互調(diào)用 參數(shù)傳遞 共享數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)信息而形成程序的過(guò)程 3 匯編語(yǔ)言與C 語(yǔ)言的混合編程有哪兩種方法 嵌入?yún)R編和模塊連接 5 C 語(yǔ)言函數(shù)通過(guò)什么方式傳遞入口參數(shù) 堆棧 6 堆棧幀是一個(gè)什么作用的堆??臻g 用于傳遞參數(shù) 保存返回地址 局部變量 保護(hù)寄存器 97 7 2判斷題 5 MASM匯編語(yǔ)言的C語(yǔ)言類型對(duì)應(yīng)C 語(yǔ)言的 cdecl 對(duì) 6 局部變量是通過(guò)堆棧創(chuàng)建的 對(duì) 7 使用寄存器替代頻繁訪問(wèn)的變量 可以提升程序性能 對(duì) 因?yàn)闇p少了相對(duì)耗時(shí)的存儲(chǔ)器訪問(wèn)操作 98 7 3填空題 1 有一個(gè)數(shù)據(jù)100 要在嵌入?yún)R編指令中作為立即數(shù) 且用十六進(jìn)制形式表達(dá) 可以像匯編語(yǔ)言中一樣表達(dá)為 也可以像C 語(yǔ)言一樣表達(dá)為 64H 0 x64 4 函數(shù)調(diào)用中 通常通過(guò)EBP指向堆棧幀 其值減 訪問(wèn)第一個(gè)局部變量 其值加 訪問(wèn)第一個(gè)入口參數(shù) 返回地址則由其值加 指向 4 8 4 5 C 函數(shù)返回一個(gè)32位整數(shù) 返回值使用 保存 EAX 99 習(xí)題7 4 閱讀如下嵌入?yún)R編的C 程序 說(shuō)明顯示結(jié)果 includeintpower2 int int voidmain void cout power2 5 6 endl intpower2 intnum intpower asm moveax nummovecx powershleax cl 320 100 習(xí)題7 6 1 如下C 程序中調(diào)用匯編語(yǔ)言子程序?qū)@兩個(gè)數(shù)求積編寫匯編語(yǔ)言子程序模塊 includeextern C intmulti intx inty voidmain void intx y cin x cin y cout multi x y endl 101 習(xí)題7 6 2 解答 686 modelflat c codemultiproc var1 dword var2 dwordmoveax var1imulvar2retmultiendpend 第8章習(xí)題 DOS環(huán)境的程序設(shè)計(jì) 8 1簡(jiǎn)答題 1 2 4 8 2判斷題 2 4 6 7 8 3填空題 1 2 7 8 6 8 14 103 8 1簡(jiǎn)答題 1 實(shí)地址方式的段基地址為什么常只給出高16位 在20位物理地址中 段起始地址的低4位規(guī)定必須是0 2 實(shí)地址存儲(chǔ)模型下 邏輯地址如何轉(zhuǎn)換為物理地址 高16位段地址左移4位加偏移地址 4 80 x86處理器的MOV指令支持外設(shè)數(shù)據(jù)傳送嗎 不支持 外設(shè)數(shù)據(jù)傳送使用IN和OUT指令 104 8 2判斷題 2 8086中 MOV AX BX 是非法指令 對(duì) 8086不支持使用AX進(jìn)行寄存器間接尋址 4 DOS程序和Windows程序一樣使用同一個(gè)退出函數(shù) 功能 實(shí)現(xiàn)退出 錯(cuò) 6 指令 OUTDX AX 的兩個(gè)操作數(shù)均采用寄存器尋址方式 一個(gè)來(lái)自處理器 一個(gè)來(lái)自外設(shè) 錯(cuò) OUT指令的DX表示采用寄存器間接尋址I O地址 7 指令 INBX 20H 正確 表示從20H端口輸入一個(gè)數(shù)據(jù) 存放到BX寄存器 錯(cuò) 指令 INAX 20H 才是正確的 105 8 3填空題 1 DOS平臺(tái)下使用實(shí)地址存儲(chǔ)模型 只能訪問(wèn) 存儲(chǔ)空間 仍進(jìn)行分段管理 但每段不大于 容量 且起始物理地址的低4位必須是 1MB 64KB 0000 2 在實(shí)地址工作方式下 邏輯地址 7380H 400H 表示的物理地址是 并且該段起始于 物理地址 73C00H 73800H 7 IA 32處理器支持4GB主存 具有 個(gè)8位外設(shè)端口 在IN和OUT指令中使用 寄存器可以訪問(wèn)到全部端口 64K DX 106 習(xí)題8 6 使用DOS系統(tǒng)功能編寫DOS應(yīng)用程序 要求如下 提示 PressESCtoExit 等待用戶輸入字符 如果用戶按下ESC 其ASCII碼是1BH 則退出 否則繼續(xù)等待輸入字符 解答 在例8 2程序中 顯示信息之后 加入如下按鍵及判斷的程序片段即可 again movah 1 等待按鍵int21hcmpal 1bhjnzagain 107 習(xí)題8 14 1 利用CMOSRAM的系統(tǒng)時(shí)間 將年月日時(shí)分秒星期等時(shí)間完整的顯示出來(lái) 解答 參考例8 7程序難點(diǎn)是星期的顯示 可以利用地址表方法如下實(shí)現(xiàn) dataweek1byte Sunday 0week2byte Monday 0 week7byte Saturday 0weekwordweek1 week2 week3 week7 108 習(xí)題8 14 2 moval 6 AL 6 從6號(hào)單元獲取星期數(shù)據(jù) out70h alinal 71hdecalshlal 1xorah ah 查表獲得星期字符串movbx offsetweekaddbx axmovax bx calldispmsg 顯示星期 第9章習(xí)題 浮點(diǎn) 多媒體及64位指令 9 1簡(jiǎn)答題 1 5 7 9 2判斷題 1 2 3 9 3填空題 1 2 3 9 4 9 5 9 6 110 9 1簡(jiǎn)答題 1 浮點(diǎn)數(shù)據(jù)為什么要采用規(guī)格化形式 浮點(diǎn)數(shù)據(jù)采用規(guī)格化形式可以表達(dá)更大 更精確的數(shù)據(jù) 也避免編碼的多樣性 5 為什么浮點(diǎn)數(shù)據(jù)編碼有舍入問(wèn)題 而整數(shù)編碼卻沒(méi)有 浮點(diǎn)數(shù)據(jù)編碼無(wú)法表達(dá)任意精度的數(shù)據(jù) 所以需要舍入 但整數(shù)編碼表達(dá)的數(shù)據(jù)都是精確的數(shù)據(jù) 7 多媒體指令為什么常被稱為SIMD指令 多媒體指令的一個(gè)突出特點(diǎn)是一條指令同時(shí)處理多組數(shù)據(jù) 即單指令多數(shù)據(jù)SIMD 111 9 2判斷題 1 浮點(diǎn)數(shù)據(jù)格式不能表達(dá)整數(shù) 錯(cuò) 當(dāng)然可以 整數(shù)可以認(rèn)為是小數(shù)部分為0的實(shí)數(shù) 2 一個(gè)32位數(shù)據(jù)是全0 不管它是整數(shù)編碼還是單精度浮點(diǎn)編碼 都表示真值0 對(duì) 3 x87FPU有8個(gè)80位浮點(diǎn)數(shù)據(jù)寄存器 可以隨機(jī)存取 錯(cuò) 采用堆棧結(jié)構(gòu) 不是隨機(jī)存取 112 9 3填空題 1 對(duì)真值 125 用補(bǔ)碼表示是 標(biāo)準(zhǔn)偏移碼與補(bǔ)碼只有一位不同 所以是 而浮點(diǎn)階碼則再減1 是 10000011 000000011 00000010 2 單精度浮點(diǎn)數(shù)據(jù)格式共有 位 其中符號(hào)位占一位 階碼部分占 位 尾數(shù)部分有 位 32 8 23 3 通過(guò)例9 2知道實(shí)數(shù) 100 25 的浮點(diǎn)格式編碼是42C88000H 則 100 25 的浮點(diǎn)格式編碼是 C2C88000H 113 習(xí)題9 4 單精度規(guī)格化浮點(diǎn)數(shù)BF600000H表達(dá)的實(shí)數(shù)是什么 BF600000H 10111111011000000000000000000000B 10111111011000000000000000000000B符號(hào)位為1 表示負(fù)數(shù)指數(shù)編碼是01111110 表示指數(shù) 126 127 1有效數(shù)字部分是11000000000000000000000表示有效數(shù) 1 11B 1 75這個(gè)實(shí)數(shù)為 1 75 2 1 1 75 0 5 0 875 114 習(xí)題9 5 真值28 75用單精度規(guī)格化浮點(diǎn)數(shù)據(jù)格式表達(dá)的編碼28 75 00011100 11B 1 110011B 24于是 符號(hào)位 0指數(shù)部分是48位階碼為10000011 4 127 131 有效數(shù)字部分是11001100000000000000000這樣 28 75表示成單精度浮點(diǎn)數(shù)為 01000001111001100000000000000000B 01000001111001100000000000000000B 41E60000H 115 習(xí)題9 6 編程顯示單精度浮點(diǎn)數(shù)據(jù)的編碼 十六進(jìn)制形式 例如用于驗(yàn)證上一個(gè)習(xí)題結(jié)果 實(shí)數(shù)可以定義在數(shù)據(jù)段中 解答 數(shù)據(jù)段f32dreal428 75 單精度浮點(diǎn)數(shù) 代碼段moveax dwordptrf32d 取浮點(diǎn)格式編碼calldisphd- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 匯編語(yǔ)言 習(xí)題 答案 全部 錢曉捷版
鏈接地址:http://www.hcyjhs8.com/p-6319722.html