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

正文內容

匯編語言全書習題答案-資料下載頁

2025-04-09 02:34本頁面
  

【正文】 型不匹配(3) JMP LAB [SI] ;LAB 是標號而不是變量名,后面不能加[SI](4) JNZ VAR1 ;VAR1 是變量而不是標號(5) JMP NEAR LAB ;應使用 NEAR PTR答:見注釋。 畫圖說明下列語句所分配的存儲空間及初始化的數據值。(1) BYTE_VAR DB ‘BYTE’,12,12H,3 DUP(0,?,2 DUP(1,2),?)(2) WORD_VAR DW 5 DUP(0,1,2),?,5,‘BY’,‘TE’,256H答:答案如上一頁圖所示。 試列出各種方法,使匯編程序把 5150H 存入一個存儲器字中( 如:DW 5150H)。答:DW 5150HDB 50H, 51HDB ‘PQ’DW ‘QP’ORG 5150HDW $ 請設置一個數據段 DATASG,其中定義以下字符變量或數據變量。(1) FLD1B 為字符串變量:‘personal puter’ ;(2) FLD2B 為十進制數字節(jié)變量: 32;(3) FLD3B 為十六進制數字節(jié)變量: 20;(4) FLD4B 為二進制數字節(jié)變量: 01011001;(5) FLD5B 為數字的 ASCII 字符字節(jié)變量:32654;(6) FLD6B 為 10 個零的字節(jié)變量;(7) FLD7B 為零件名(ASCII 碼) 及其數量(十進制數) 的表格:PART1 20PART2 50《 制作:江家寶第 17 頁 共 93 頁PART3 14(8) FLD1W 為十六進制數字變量:FFF0;(9) FLD2W 為二進制數的字變量:01011001;(10) FLD3W 為 (7)零件表的地址變量;(11) FLD4W 為包括 5 個十進制數的字變量: 5,6,7,8,9;(12) FLD5W 為 5 個零的字變量;(13) FLD6W 為本段中字數據變量和字節(jié)數據變量之間的地址差。答:DATASG SEGMENTFLD1B DB ‘personal puter’FLD2B DB 32FLD3B DB 20HFLD4B DB 01011001BFLD5B DB ‘32654’FLD6B DB 10 DUP (0)FLD7B DB ‘PART1’, 20DB ‘PART2’, 50DB ‘PART3’, 14FLD1W DW 0FFF0HFLD2W DW 01011001BFLD3W DW FLD7BFLD4W DW 5, 6, 7, 8, 9FLD5W DW 5 DUP (0)FLD6W DW FLD1WFLD1BDATASG ENDS 假設程序中的數據定義如下:PARTNO DW ?PNAME DB 16 DUP (?)COUNT DD ?PLENTH EQU $PARTNO問 PLENTH 的值為多少?它表示什么意義?答:PLENTH=22=16H,它表示變量 PARTNO、PNAME 、COUNT 總共占用的存儲單元數(字節(jié)數) 。 有符號定義語句如下:BUFF DB 1, 2, 3, ‘123’EBUFF DB 0L EQU EBUFF BUFF問 L 的值是多少?答:L=6。 假設程序中的數據定義如下:LNAME DB 30 DUP (?)ADDRESS DB 30 DUP (?)CITY DB 15 DUP (?)CODE_LIST DB 1, 7, 8, 3, 2(1) 用一條 MOV 指令將 LNAME 的偏移地址放入 AX。(2) 用一條指令將 CODE_LIST 的頭兩個字節(jié)的內容放入 SI。(3) 用一條偽操作使 CODE_LENGTH 的值等于 CODE_LIST 域的實際長度。答:(1) MOV AX, OFFSET LNAME(2) MOV SI, WORD PTR CODE_LIST(3) CODE_LENGTH EQU $ CODE_LIST ;此語句必須放在 CODE_LIST 語句之后 試寫出一個完整的數據段 DATA_SEG,它把整數 5 賦予一個字節(jié),并把整數1,0,2,5 和 4 放在 10字數組 DATA_LIST 的頭 5 個單元中。然后,寫出完整的代碼段,其功能為:把 DATA_LIST 中頭 5 個數中的最大值和最小值分別存入 MAX 和 MIN 單元中。答:DATA_SEG SEGMENT NUM DB 5 DATA_LIST DW 1, 0, 2, 5, 4, 5 DUP (?) MAX DW ? MIN DW ? DATA_SEG ENDS ;CODE_SEG SEGMENT MAIN PROC FARASSUME CS: CODE_SEG, DS: DATA_SEGSTART:PUSH DS ;設置返回 DOSSUB AX, AXPUSH AXMOV AX, DATA_SEG ;給 DS 賦值MOV DS, AXMOV CX, 4 ;程序段開始LEABX, DATA_LISTMOV AX, [BX]MOV MAX, AXMOV MIN, AX《 制作:江家寶第 18 頁 共 93 頁ROUT1: ADD BX, 2MOV AX, [BX]CMP AX, MAXJNGE ROUT2MOV MAX, AXROUT2: CMP AX, MINJNLE ROUT3MOV MIN, AXROUT3: LOOP ROUT1 ;程序段結束RETMAIN ENDPCODE_SEG ENDS;END START 給出等值語句如下:ALPHA EQU 100BETA EQU 25GAMMA EQU 2下列表達式的值是多少?(1) ALPHA * 100 + BETA ;=2729H(2) ALPHA MOD GAMMA + BETA ;=19H(3) (ALPHA +2) * BETA – 2 ;=9F4H(4) (BETA / 3) MOD 5 ;=3H(5) (ALPHA +3) * (BETA MOD GAMMA) ;=67H(6) ALPHA GE GAMMA ;=0FFFFH(7) BETA AND 7 ;=01H(8) GAMMA OR 3 ;=03H答:見注釋。 對于下面的數據定義,三條 MOV 指令分別匯編成什么?( 可用立即數方式表示)TABLEA DW 10 DUP (?)TABLEB DB 10 DUP (?)TABLEC DB ‘1234’┇MOV AX, LENGTH TABLEA ;匯編成 MOV AX, 000AHMOV BL, LENGTH TABLEB ;匯編成 MOV BL, 000AHMOV CL, LENGTH TABLEC ;匯編成 MOV CL, 0001H答:見注釋。 對于下面的數據定義,各條 MOV 指令單獨執(zhí)行后,有關寄存器的內容是什么?FLDB DB ?TABLEA DW 20 DUP (?)TABLEB DB ‘ABCD’(1) MOV AX, TYPE FLDB ;(AX)=0001H(2) MOV AX, TYPE TABLEA ;(AX)=0002H(3) MOV CX, LENGTH TABLEA ;(CX)=0014H(4) MOV DX, SIZE TABLEA ;(DX)=0028H(5) MOV CX, LENGTH TABLEB ;(CX)=0001H答:見注釋。 指出下列偽操作表達方式的錯誤,并改正之。(1) DATA_SEG SEG ;DATA_SEG SEGMENT(偽操作錯)(2) SEGMENT ‘CODE’ ;SEGNAME SEGMENT ‘CODE’(缺少段名字)(3) MYDATA SEGMENT/DATA ;MYDATA SEGMENT┇ENDS ;MYDATA ENDS(缺少段名字)(4) MAIN_PROCPROC FAR ;刪除 END MAIN_PROC 也可以┇END MAIN_PROC ;MAIN_PROC ENDP ;上下兩句交換位置MAIN_PROC ENDP ; END MAIN_PROC答:見注釋。 按下面的要求寫出程序的框架(1) 數據段的位置從 0E000H 開始,數據段中定義一個 100 字節(jié)的數組,其類型屬性既是字又是字節(jié);(2) 堆棧段從小段開始,段組名為 STACK;(3) 代碼段中指定段寄存器,指定主程序從 1000H 開始,給有關段寄存器賦值;《 制作:江家寶第 19 頁 共 93 頁(4) 程序結束。答:程序的框架如下:DATA_SEG SEGMENT AT 0E000HARRAY_B LABEL BYTEARRAY_W DW 50 DUP (?)DATA_SEG ENDS ;以上定義數據段;STACK_SEG SEGMENT PARA STACK ‘STACK’DW 100H DUP (?)TOS LABEL WORDSTACK_SEG ENDS ;以上定義堆棧段;CODE_SEG SEGMENTMAIN PROC FARASSUME CS: CODE_SEG, DS: DATA_SEG, SS: STACK_SEGORG 1000HSTART: MOV AX, STACK_SEGMOV SS, AX ;給 SS 賦值MOV SP, OFFSET TOS ;給 SP 賦值PUSH DS ;設置返回 DOSSUB AX, AXPUSH AXMOV AX, DATA_SEGMOV DS, AX ;給 DS 賦值┇ ;程序段部分RETMAIN ENDPCODE_SEG ENDS ;以上定義代碼段;END START 寫一個完整的程序放在代碼段 C_SEG 中,要求把數據段 D_SEG 中的 AUGEND 和附加段 E_SEG 中的ADDEND 相加,并把結果存放在 D_SEG 段中的 SUM 中。其中 AUGEND、ADDEND 和 SUM 均為雙精度數,AUGEND 賦值為 99251,ADDEND 賦值為 15962。答:程序如下:D_SEG SEGMENTAUGW LABEL WORDAUGEND DD 99251SUM DD ?D_SEG ENDS ;以上定義數據段;E_SEG SEGMENTADDW LABEL WORDADDEND DD 15962E_SEG ENDS ;以上定義附加段;C_SEG SEGMENTMAIN PROC FARASSUME CS: C_SEG, DS: D_SEG, ES: E_SEGSTART: PUSH DS ;設置返回 DOSSUB AX, AXPUSH AXMOV AX, D_SEGMOV DS, AX ;給 DS 賦值MOV AX, E_SEGMOV ES, AX ;給 ES 賦值MOV AX, AUGW ;以下 6 條指令進行加法計算MOV BX, AUGW+2ADD AX, ES: ADDWADC BX, ES: ADDW+2 ;不考慮有符號數溢出《 制作:江家寶第 20 頁 共 93 頁MOV WORD PTR SUM, AXMOV WORD PTR [SUM+2], BXRETMAIN ENDPC_SEG ENDS ;以上定義代碼段;END START 請說明表示程序結束的微操作和結束程序執(zhí)行的語句之間的差別。它們在源程序中應如何表示?答:表示程序結束的微操作是指示匯編程序 MASM 結束匯編的標志,在源程序中用 END 表示;結束程序執(zhí)行的語句是結束程序運行而返回操作系統(tǒng)的指令,在源程序中有多種表示方法,比如 INT 20H或 MOV AX, 4C00H INT 21H 以及 RET 等。 試說明下述指令中哪些需要加上 PTR 操作符:BVAL DB 10H,20HWVAL DW 1000H(1) MOV AL,BVAL ;不需要(2) MOV DL,[BX] ;不需要(3) SUB [BX],2 ;需要,如 SUB BYTE PTR [BX],2(4) MOV CL,WVAL ;需要,如 MOV CL,BYTE PTR WVAL(5) ADD AL,BVAL+1 ;不需要答:見注釋。 返回目錄《 制作:江家寶第 21 頁 共 93 頁第五章: 循環(huán)與分支程序設計 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。 返回目錄答:程序段如下:BEGIN:MOV AH, 1;從鍵盤輸入一個字符INT 21HCMP AL, ‘a’ ;輸入字符‘a’嗎?JB STOPCMP AL, ‘z’ ;輸入字符‘z’嗎?JA STOPSUB AL,
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1