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

正文內(nèi)容

[理學]匯編語言第三五章課后題答案-資料下載頁

2025-01-09 01:16本頁面
  

【正文】 STOP ;沒有偶數(shù),退出 JCXZ STOP ;最后一個數(shù)是偶數(shù),即為最小偶數(shù),退出 COMPARE1: MOV DX, DATA[BX] ;取數(shù)組的下一個偶數(shù) ADD BX, 2 TEST DX, 01H ;是偶數(shù)嗎? JNZ NEXT ;不是,比較下一個數(shù) CMP AX, DX ; (AX)(DX)嗎? JLE NEXT MOV AX, DX ; (AX)(DX),則置換 (AX)為最小偶數(shù) NEXT: LOOP COMPARE1 STOP: RET 把 AX 中存放的 16 位二進制數(shù) K 看作是 8 個二進制的“四分之一字節(jié)”。試編寫程序要求數(shù)一下值為 3(即 11B)的四分之一字節(jié)數(shù),并將該數(shù) (即 11B 的個數(shù) )在終端上顯示出來。 答:程序段如下: BEGIN: MOV DL, 0 ;計數(shù)初始值 MOV CX, 8 COMPARE: TEST AX, 03H ;是數(shù) 03 嗎? JNZ NOEQUAL ;不是,轉走 INC DL ;是,計數(shù) NOEQUAL: ROR AX, 1 ;準備判斷下一個數(shù) ROR AX, 1 LOOP COMPARE ADD DL, ?0? ;將計數(shù)值轉換為 ASCII 碼 MOV AH, 2 ;進行顯示 INT 21H STOP: RET 試編寫一個匯編語言程序,要求從鍵盤接收一個四位的 16 進制數(shù),并在終端上顯示與它等 值的二進制數(shù)。 答:程序段如下: BEGIN: MOV BX, 0 ;用于存放四位的 16 進制數(shù) MOV CH, 4 MOV CL, 4 INPUT: SHL BX, CL ;將前面輸入的數(shù)左移 4 位 MOV AH, 1 ;從鍵盤取數(shù) INT 21H CMP AL, 30H ; 0 嗎? JB INPUT ;不是 ?0~ F?的數(shù)重新輸入 CMP AL, 39H ;是 ?0~ 9?嗎? JA AF ;不是,轉‘ A~ F’的處理 AND AL, 0FH ;轉換為: 0000B~ 1001B JMP BINARY AF: AND AL, 1101 1111B ;轉換為大寫字母 CMP AL, 41H ;又 A 嗎? JB INPUT ;不是 ?A~ F?的數(shù)重新輸入 CMP AL, 46H ; F 嗎? JA INPUT ;不是 ?A~ F?的數(shù)重新輸入 AND AL, 0FH ;轉換為: 1010B~ 1111B ADD AL, 9 BINARY: OR BL, AL ;將鍵盤輸入的數(shù)進行組合 DEL CH JNZ INPUT DISPN: MOV CX, 16 ;將 16位二進制數(shù)一位位地轉換成 ASCII碼顯示 DISP: MOV DL, 0 ROL BX, 1 RCL DL, 1 OR DL, 30H MOV AH, 2 ;進行顯示 INT 21H LOOP DISP STOP: RET 設有一段英文,其字符變量名為 ENG,并以 $字符結束。試編寫一程序,查對單詞 SUN在該文中的出現(xiàn)次數(shù),并以格式“ SUN: xxxx”顯示出次數(shù)。 答:程序如下: DSEG SEGMENT ENG DB ?Here is sun, sun ,? ,$? DISP DB ?SUN: ? DAT DB ?0000? , 0DH, 0AH, ?$? KEYWORD DB ?sun? DSEG ENDS ; CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG, ES: DSEG START: PUSH DS ;設置返回 DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給 DS 賦值 MOV ES, AX ;給 ES 賦值 BEGIN: MOV AX, 0 MOV DX, DISPENG2 ;計算 ENG 的長度 (每次比較 sun,因此比較次數(shù) 2) LEA BX, ENG COMP: MOV DI, BX LEA SI, KEYWORD MOV CX, 3 REPE CMPSB ;串比較 JNZ NOMATCH INC AX ;是, SUN 的個數(shù)加 1 ADD BX, 2 NOMATCH: INC BX ;指向 ENG 的下一個字母 DEC DX JNZ COMP DONE: MOV CH, 4 ;將次數(shù)轉換為 16 進制數(shù)的 ASCII 碼 MOV CL, 4 LEA BX, DAT ;轉換結果存入 DAT 單元中 DONE1: ROL AX, CL MOV DX, AX AND DL, 0FH ;取一位 16 進制數(shù) ADD DL, 30H CMP DL, 39H JLE STORE ADD DL, 07H ;是“ A~ F”所以要加 7 STORE: MOV [BX], DL ;轉換結果存入 DAT 單元中 INC BX DEC CH JNZ DONE1 DISPLAY: LEA DX, DISP ;顯示字符串程序 (將 DISP 和 DAT 一起顯示 ) MOV AH, 09H INT 21H RET MAIN ENDP CSEG ENDS ;以上定義代碼段 ; END START 從鍵盤輸入一系列以 $為結束符的字符 串,然后對其中的非數(shù)字字符計數(shù),并顯示出計數(shù)結果。 答:程序段如下: DSEG SEGMENT BUFF DB 50 DUP (? ?) COUNT DW 0 DSEG ENDS ┇ BEGIN: LEA BX, BUFF MOV COUNT, 0 INPUT: MOV AH, 01 ;從鍵盤輸入一個字符的功能調(diào)用 INT 21H MOV [BX], AL INC BX CMP AL, ?$? ;是 $結束符嗎? JNZ INPUT ;不是,繼續(xù)輸入 LEA BX, BUFF ;對非數(shù)字字符進行計數(shù) NEXT: MOV CL, [BX] INC BX CMP CL, ?$? ;是 $結束符,則轉去顯示 JZ DISP CMP CL, 30H ;小于 0 是非數(shù)字字符 JB NEXT CMP CL, 39H ;大于 9 是非數(shù)字字符 JA NEXT INC COUNT ;個數(shù) +1 JMP NEXT DISP: ┇ ; 16 進制數(shù)顯示程序段 (省略 ) 有一個首地址為 MEM 的 100D 字數(shù)組,試編制程序刪除數(shù)組中所有為 0 的項,并將后續(xù)項向前壓縮,最后將數(shù) 組的剩余部分補上 0。 答:程序如下: DSEG SEGMENT MEM DW 100 DUP (?) DSEG ENDS ; CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;設置返回 DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給 DS 賦值 BEGIN: MOV SI, (1001)*2 ; (SI)指向 MEM 的末元素的首地址 MOV BX, 2 ;地址指針的初值 MOV CX, 100 COMP: ADD BX, 2 CMP MEM [BX], 0 JZ CONS LOOP COMP JMP FINISH ;比較完了,已無 0 則結束 CONS: MOV DI, BX CONS1: CMP DI, SI ;到了最后單元碼? JAE NOMOV MOV AX, MEM [DI+2] ;后面的元素向前移位 MOV MEM [DI], AX ADD DI, 2 JMP CONS1 NOMOV: MOV WORD PTR [SI], 0 ;最后單元補 0 LOOP COMP FINISH: RET MAIN ENDP CSEG ENDS ;以上定義代碼段 ; END START 在 STRING 到 STRING+99 單元中存 放著一個字符串,試編制一個程序測試該字符串中是否存在數(shù)字,如有則把 CL 的第 5 位置 1,否則將該位置 0。 答:程序如下: DSEG SEGMENT STRING DB 100 DUP (?) DSEG ENDS ; CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;設置返回 DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給 DS 賦值 BEGIN: MOV SI, 0 ; (SI)作為地址指針的變化值 MOV CX, 100 REPEAT: MOV AL, STRING [SI] CMP AL, 30H JB GO_ON CMP AL, 39H JA GO_ON OR CL, 20H ;存在數(shù)字把 CL 的第 5 位置 1 JMP EXIT GO_ON: INC SI LOOP REPEAT AND CL, 0DFH ;不存在數(shù)字把 CL 的第 5 位置 0 EXIT: RET MAIN ENDP CSEG ENDS ;以上定義代碼段 ; END START 在首地址為 TABLE 的數(shù)組中按遞增次序存放著 100H 個 16 位補碼數(shù),試編寫一個程序把出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)分別存放于 AX 和 CX 中。 答:程序如下: DSEG SEGMENT TABLE DW 100H DUP (?) ;數(shù)組中的數(shù)據(jù)是按增序排列的 DATA DW ? COUNT DW 0 DSEG ENDS ; CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;設置返回 DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給 DS 賦值 BEGIN: MOV CX, 100H ;循環(huán)計數(shù)器 MOV SI, 0 NEXT: MOV DX, 0 MOV AX, TABLE [SI] COMP: CMP TABLE [SI], AX ;計算一個數(shù)的出現(xiàn)次數(shù) JNE ADDR INC DX ADD SI, 2 LOOP COMP ADDR: CMP DX, COUNT ;此數(shù)出現(xiàn)的次數(shù)最多嗎? JLE DONE MOV COUNT, DX ;目前此數(shù)出現(xiàn)的次數(shù)最多,記下次數(shù) MOV DATA, AX ;記下此數(shù) DONE: LOOP NEXT ;準備取下一個數(shù) MOV CX, COUNT ;出現(xiàn)最多的次數(shù)存入 (CX) MOV AX, DATA ;出現(xiàn)最多的數(shù)存入 (AX) RET MAIN ENDP CSEG ENDS ;以上定義代碼段 ; END START 數(shù)據(jù)段中已定義了一個有 n 個字數(shù)據(jù)的數(shù)組 M,試編寫 一程序求出 M 中絕對值最大的數(shù),把它放在數(shù)據(jù)段的 M+2n 單元中,并將該數(shù)的偏移地址存放在 M+2(n+1)單元中。 答:程序如下: DSEG SEGMENT n EQU 100H ;假設 n=100H M DW n DUP (?) DATA DW ? ; M+2n 單元 ADDR DW ? ; M+2(n+1)單元 DSEG ENDS ; CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;設置返回 DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給 DS 賦值 BEGIN: MOV CX, n ;循環(huán)計數(shù)器 LEA DI, M MOV AX, [DI] ;取第一個數(shù) MOV ADDR, DI ;記下絕對值最大的數(shù)的地址 CMP AX, 0 ;此數(shù)是正數(shù)嗎? JNS ZHEN ;是正數(shù),即為絕對值,轉去判斷下一個數(shù) NEG AX ;不是正數(shù),變?yōu)槠浣^對值 ZHEN: MOV BX, [DI] CMP BX, 0 ;此數(shù)是正數(shù)
點擊復制文檔內(nèi)容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1