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

正文內容

匯編語言程序設計習題及答案(已修改)

2025-04-21 02:23 本頁面
 

【正文】 習題一 把下列16進制數轉換成為十進制數(1)(1011011)2 (2)()2 (3)()2 (4)()2(5)(377)8 (6)()8 (7)(3FF)16 (8)()16解: (1)(1011011)2=64+16+8+2+1=91 另解:原式=(5B)16=516+11=91(2)()2=++=(3)()2=32+16+8+4+2+1+= 另解:原式=(10000001+)2=641+=(4)()2=64+1++=(5)(377)8=364+78+7=255 另解:原式=(4001)8=4641=255(6)()8=2+4=(7)(3FF)16=3256+1516+15=1023 另解:原式=(4001)16=42561=1023(8)()16=216+10+4= 另解:原式=216+10+4247。16= 把下列十進制數轉換為16進制數 (1)(127)10 (2)(33)10 (3)()10 (4)()10 (5)()10 (6)(377)10 (7)(1/1024)10 (8)(377/32)10解: (1)(127)10 =64+32+16+8+4+2+1= (111 1111)2=(7F)16 另解:原式=(1281)10=(1000 00001)2=(111 1111)2=(7F)16 (2)(33)10 =32+1= (10 0001)2=(21)16 (3)()10 = ( 1100 1……)2=(……)16(4)()10= +=()2=()16(5)()10 = 512+256+128+64+32+16+8+4+2+1+=(11 1111 )2=()16 (6)(377)10 =256+64+32+16+8+1=(1 0111 1001)2=(179)16(7)(1/1024)10=( 0000 01)2=()16 (8)(377/32)10=(256+64+32+16+8+1)247。(32)= (101111001)2247。(100000)2=()2=()16 把下列二進制數轉換為十六進制數 (1)(100011)2 (2)()2 (3)()2 (4)()2解: (1)(100011)2=(10’0011)2=23H(2)()2=(’1000)2=(3)()2=(1’)2=(4)()2=(’1000)2= 把下列十六進制數轉換為二進制數 (1)(3B6)16 (2)(100)16 (3)()16 (4)()16解: (1)(3B6)16 =(0011 1011 0110)2 (2)(100)16 =(0001 0000 0000)2 (3)()16 =(1000 )2 (4)()16 =(0010 1111 )2 如果用24b儲存一個無符號數,這個數的范圍是什么?如果儲存的是一個補碼表示的有符號數,那么這個數的范圍又是什么?答:如果用24b儲存一個無符號數,這個數的范圍應為:0~2241 如果用24b儲存一個補碼表示的有符號數,這個數的范圍應為:223~+2231 兩個無符號數,它們的大小等于十進制數210和303,用N位二進制存儲時,相加產生了進位,用N+1位二進制存儲時,相加沒有產生進位。這個N等于多少?為什么?答:210+303=513, 29513210,取N=9時,相加會產生進位,取N=10,相加就不會產生進位,因此,本題中N=9。 兩個8位二進制無符號數相加后沒有產生進位,符號標志SF=1,它們和應在什么范圍內?如果SF=0,那么和又在什么范圍內?答:如果SF=1,它們的和應在27~281,也就是128~255之內。 如果SF=0,它們的和應在0~271,也就是0~127之內。 兩個8位補碼表示的有符號數相加時,什么情況下會使進位標志等于“1”?相減時,又是什么情況下會使借位標志等于“1”?答:兩個8位補碼表示的有符號數相加時,下列情況會使進位標志等于“1”:兩個負數相加;兩個異號數相加,和為正(不會產生溢出)。兩個8位補碼表示的有符號數相減時,下列情況會使借位標志等于“1”:兩個同號數相減,差為負(不會產生溢出);正數減負數(有可能產生溢出); 用符號“〉”把下面的數按從大到小的順序“連接”起來 [X1]補=10110111 [X2]原=10110111 [X3]反=10110111 [X4]補=10110110 [X5]無符號數=10110111解:X1=0100 1001B, X2=011 0111B, X3=0100 1000B, X4=0100 1010B, X5=+1011 0111B 因此:X5X2X3X1X4 用8位補碼完成下列運算,用二進制“真值”的格式給出運算結果,并指出運算后CF、OF、ZF、SF、PF標志位的狀態(tài)。 (1)127+126 (2)126127 (3)100120 (4)100(120)解: (1)127+126 [127]補=0111 1111,[126]補=0111 1110,[127+126]補=1111 1101,[127+126]=0000 0011(溢出)COZSP=01010(2)126127 [126]補=0111 1110,[127]補=1000 0001,[126127]補=1111 1111,[126127]=000 0001COZSP=10011(3)100120 [100]補=1001 1100,[120]補=1000 1000,[100120]補=0010 0100,[100120]=+0010 0100(溢出)COZSP=01001(4)100(120) [100]補=1001 1100,[120]補=1000 1000,[ [120]補]求補=0111 1000,[100(120)]補=0001 0100,[100(120)]=+0001 0100COZSP=00001 把二進制代碼1001011101011000分別“看作”是: (1)二進制無符號數 (2)二進制補碼 (3)壓縮BCD碼 (4)非壓縮BCD碼 哪一種情況下它代表的“值”最大?答:看作二進制無符號數時,它代表的“值”最大。分析:看作二進制補碼時,它代表一個負數,而其它的情況下,它均為正數。因此,看作二進制補碼時,它代表的值最小。 把這組代碼用十六進制數字形式寫出:9758 對于無符號數,它的值等于十六進制的9758H; 對于壓縮BCD碼,它的值等于十進制的9758,顯然小于9758H; 對于非壓縮BCD碼,它的值等于十進制的78,顯然更小于9758H; 因此,看作二進制無符號數時,它代表的“值”最大。 CPU使用“寄存器”有什么好處?為什么?答:CPU使用寄存器主要有兩個好處:(1) 寄存器位于CPU內部,訪問寄存器比訪問內存儲器速度快;(2) 寄存器數量大大少于內存儲器單元個數,標識寄存器使用的二進制代碼比標識內存儲器單元使用的二進制代碼少得多,可以縮短指令長度。 已知8086系統(tǒng)某存儲單元物理地址為12345H,寫出4個可以與它對應的“邏輯地址”。答:可以與物理地址12345H對應的邏輯地址有: 1234H:0005H, 1230H:0045H, 1220H:0145H, 1224H:0105H, …… 已知8086系統(tǒng)某存儲單元物理地址為12345H,可以與它對應的“邏輯地址”中,段基址最大值,最小值分別是多少?答:可以與物理地址12345H對應的邏輯地址中,段基址的最大值為1234H,最小值為0235H。分析:偏移地址取最大值時,對應的段基址為最小。偏移地址可選的最大值為0FFF5H(最后一位必須為5),因此最小的段基址=(12345H0FFF5H)/10H=0235H。 偏移地址取最小值時,對應的段基址最大。偏移地址可選的最小值為0005H(最后一位必須為5),因此最大的段基址=(12345H0005H)/10H=1234H。 8086微機最多可以有多少個不同的“段基址”?為什么?答:由于段基址由16位二進制數表示,因此可以有216=65536個不同的段基址。 在圖16中,假設已有(R1)=X,(R2)=Y,分別用它的機器指令和符號指令寫出計算R0←4X+2Y的程序。想一想,怎樣做才能盡量減少指令數量?答:假設已有(R1)=X,(R2)=Y,可以編制如下計算R0←4X+2Y的程序:符號指令 機器指令 注釋MOV R0, R1 1 000 00 01(81H) R0←XADD R0, R1 1 001 00 01(91H) R0←X+XADD R0, R2 1 001 00 10(92H) R0←2X+YADD R0, R0 1 001 00 00(90H) R0←4X+2Y減少指令的方法是先計算出2X+Y,然后再計算4X+2Y??梢杂卸喾N不同的寫法。 什么是“邏輯地址”?什么是“線性地址”?什么是“物理地址”?它們如何轉換?答:由段的起始地址(段基址)或者段的編號和段內相對地址兩部分表示的地址稱為“邏輯地址”。 經過“分段機構”處理后,用一組二進制代碼表示的地址稱為“線性地址”。 經過“分頁機構”處理后,用一組二進制代碼表示的存儲單元的“真實”的地址稱為“物理地址”。物理地址的位數等于地址總線的寬度。工作在實地址模式下的80X86MPU不使用線性地址,物理地址=段基址16+段內偏移地址。80X86MPU工作在保護模式下時,分段機構用段的編號在“段描述符表”中找到段的起始地址,加上偏移地址得到“線性地址”。分頁機構把線性地址從高位到低位分解為“頁組地址:頁地址:頁內地址”三部分,由頁組地址(頁組號)查找“頁組表”,獲得該頁組對應的“頁表”首地址。然后用頁地址(頁號)去查“頁表”,得到該頁的起始地址,拼接上頁內地址,得到“物理地址”。保護模式下也可以關閉分頁機構,此時線性地址等于物理地址。 32位80X86和16位80X86中央處理器的段寄存器有什么不同?答:16位80X86CPU的段寄存器長度為16位,存放的是一個段起始地址的高16位。 32位80X86CPU的段寄存器長度仍然為16位,存放的是一個段在“段描述符表”中的序號,表的編號(對每一個程序,有兩張段描述符表)和這個段的優(yōu)先級別。 敘述“保護模式”和“虛擬8086方式”之間的關系。答:保護模式是32位80X86MPU的工作方式,對當前運行的所有任務實施保護。虛擬8086方式是保護模式下某一個任務的工作模式,該任務使用類似于實地址方式下的物理地址產生方式,使用1MB的虛擬內存空間,主要用于運行8086程序。 習題二 某數據段內有如下數據定義:X db 30, 30H, ‘ABC’, 23, ?, 11001010B dw 0FFH,2, “CD”Y dd 20 dup(15, 3 dup(?), 0)Z db 3 dup(?)W dw ZX 假設變量X的偏移地址為20H。(1) 按照圖21的格式寫出變量X各數據在內存中的具體位置和相關內存單元的值。(2) 寫出變量Y,Z的偏移地址。(3) 寫出變量W的值答:(1)變量X各數據在內存中的具體位置和相關內存單元的值如右圖。(2) 變量Y的偏移地址為002EH;變量Z的偏移地址為002EH+4520=01BEH(3) 變量W的值等于變量Z和X偏移地址之差01BEH0020H=019EH它等于變量X、Y所占用內存單元的字節(jié)數。 80x86指令系統(tǒng)有哪幾種類型的指令操作數?比較使用不同類型操作數后的指令長度和指令執(zhí)行時間。答:80X86指令系統(tǒng)按照長度劃分,有以下四種指令操作數:(1) 寄存器操作數,指令短,執(zhí)行速度快;(2) 立即操作數,指令較長,執(zhí)行速度快;(3) 寄存器間接尋址和基址變址尋址表示的內存儲器操作數,這類指令長度較短,執(zhí)行速度較慢(需要訪問存儲器);(4) 直接地址,寄存器相對尋址,相對的基址變址尋址表示的內存儲器操作數,這類指令長度較長,執(zhí)行速度較慢(需要計算物理地址,訪問存儲器)。 下列指令的源操作數段基址在哪個段寄存器中? (1)MOV AX, [BP][SI] (2)MOV AX, CS:8[DI] (3)MOV AX, 2[EBP*1] (4)MOV AX, FS:4[ESP] (5)MOV AX, 2[EBP][EAX] (6)MOV AX, [ECX][EBP*4] (7)MOC AX, [EDX][EBP] (8)MOV AX, ES:10[EBP][EAX*2]答:各指令源操作數段基址使用的段寄存器如下: (1) SS (2) CS (3) SS (4) FS (5) SS (6) DS (7) DS (8) ES 判斷下列指令是否正確。若不正確,指出錯誤原因 (1)MOV AX, [EBX] (2)MOV SI, DL (3)MOV EBP, [ESP][EAX*3](4)LEA AX, 3006H (5)MOV [BP][DI], 0 (6)MOV [SI], [DI] (7)MOV ES, 1000H (8)MOV AX, X+2 (9)MOV AX, CX+2 (10)MOV [EAX][EAX*2], AL答: (1)指令MOV AX, [EBX] 是正確的。 (2)指令MOV SI, DL是錯誤的,兩個操
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1