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

正文內容

ibmpc匯編語言程序設計課后習題答案第二版沉美明-資料下載頁

2025-06-07 13:34本頁面
  

【正文】 數(shù)據(jù)段的位置從0E000H開始,數(shù)據(jù)段中定義一個100字節(jié)的數(shù)組,其類型屬性既是字又是字節(jié);(2) 堆棧段從小段開始,段組名為STACK;(3) 代碼段中指定段寄存器,指定主程序從1000H開始,給有關段寄存器賦值;(4) 程序結束。答:程序的框架如下:DATA_SEG SEGMENT AT 0E000HARRAY_B LABEL BYTEARRAY_W DW 50 DUP (?)DATA_SEG ENDS ;以上定義數(shù)據(jù)段;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中,要求把數(shù)據(jù)段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把結果存放在D_SEG 段中的SUM中。其中AUGEND、ADDEND和SUM均為雙精度數(shù),AUGEND賦值為99251,ADDEND賦值為 15962。答:程序如下:D_SEG SEGMENTAUGW LABEL WORDAUGEND DD 99251SUM DD ?D_SEG ENDS ;以上定義數(shù)據(jù)段;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 ;不考慮有符號數(shù)溢出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 ;不需要答:見注釋。第五章 試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。答:程序段如下:BEGIN: MOV AH, 1 ;從鍵盤輸入一個字符的DOS調用INT 21HCMP AL, ‘a’ ;輸入字符‘a’嗎?JB STOPCMP AL, ‘z’ ;輸入字符‘z’嗎?JA STOPSUB AL, 20H ;轉換為大寫字母,用AND AL, 1101 1111B也可MOV DL, AL ;顯示一個字符的DOS調用MOV AH, 2INT 21HJMP BEGINSTOP: RET 編寫程序,從鍵盤接收一個小寫字母,然后找出它的前導字符和后續(xù)字符,再按順序顯示這三個字符。答:程序段如下:BEGIN: MOV AH, 1 ;從鍵盤輸入一個字符的DOS調用INT 21HCMP AL, ‘a’ ;輸入字符‘a’嗎?JB STOPCMP AL, ‘z’ ;輸入字符‘z’嗎?JA STOPDEC AL ;得到前導字符MOV DL, AL ;準備顯示三個字符MOV CX, 3DISPLAY: MOV AH, 2 ;顯示一個字符的DOS調用INT 21HINC DLLOOP DISPLAYSTOP: RET 將AX寄存器中的16位數(shù)分成4組,每組4位,然后把這四組數(shù)分別放在AL、BL、CL和DL中。答:程序段如下:DSEG SEGMENTSTORE DB 4 DUP (?)DSEG ENDS┇BEGIN: MOV CL, 4 ;右移四次MOV CH, 4 ;循環(huán)四次LEA BX, STOREA10: MOV DX, AXAND DX, 0FH ;取AX的低四位MOV [BX], DL ;低四位存入STORE中INC BXSHR AX, CL ;右移四次DEC CHJNZ A10 ;循環(huán)四次完了碼?B10: MOV DL, STORE ;四組數(shù)分別放在AL、BL、CL和DL中MOV CL, STORE+1MOV BL, STORE+2MOV AL, STORE+3STOP: RET 試編寫一程序,要求比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示‘MATCH’, 若不相同則顯示‘NO MATCH’。答:程序如下:DSEG SEGMENTSTRING1 DB ‘I am a student.’STRING2 DB ‘I am a student!’YES DB ‘MATCH’, 0DH, 0AH, ‘$’NO DB ‘NO MATCH’, 0DH, 0AH, ‘$’DSEG ENDS;CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEG, ES: DSEGSTART: PUSH DS ;設置返回DOSSUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;給DS賦值MOV ES, AX ;給ES賦值;BEGIN: LEA SI, STRING1 ;設置串比較指令的初值LEA DI, STRING2CLDMOV CX, STRING2 STRING1REPE CMPSB ;串比較JNE DISPNOLEA DX, YES ;顯示MATCHJMP DISPLAYDISPNO: LEA DX, NO ;顯示NO MATCHDISPLAY: MOV AH, 9 ;顯示一個字符串的DOS調用INT 21HRETMAIN ENDPCSEG ENDS ;以上定義代碼段;END START 試編寫一程序,要求能從鍵盤接收一個個位數(shù)N,然后響鈴N次(響鈴的ASCII碼為07)。答:程序段如下:BEGIN: MOV AH, 1 ;從鍵盤輸入一個字符的DOS調用INT 21HSUB AL, ‘0’JB STOP ;輸入字符‘0’嗎?CMP AL, 9 ;輸入字符‘9’嗎?JA STOPCBWMOV CX, AX ;響鈴次數(shù)NJCXZ STOPBELL: MOV DL, 07H ;準備響鈴MOV AH, 2 ;顯示一個字符的DOS調用,實際為響鈴INT 21HCALL DELAY100ms ;延時100msLOOP BELLSTOP: RET 編寫程序,將一個包含有20個數(shù)據(jù)的數(shù)組M分成兩個數(shù)組:正數(shù)數(shù)組P和負數(shù)數(shù)組N,并分別把這兩個數(shù)組中數(shù)據(jù)的個數(shù)顯示出來。答:程序如下:DSEG SEGMENTCOUNT EQU 20ARRAY DW 20 DUP (?) ;存放數(shù)組COUNT1 DB 0 ;存放正數(shù)的個數(shù)ARRAY1 DW 20 DUP (?) ;存放正數(shù)COUNT2 DB 0 ;存放負數(shù)的個數(shù)ARRAY2 DW 20 DUP (?) ;存放負數(shù)ZHEN DB 0DH, 0AH, ‘The positive number is:’, ‘$’ ;正數(shù)的個數(shù)是:FU DB 0DH, 0AH, ‘The negative number is:’, ‘$’ ;負數(shù)的個數(shù)是:CRLF DB 0DH, 0AH, ‘$’DSEG ENDS;CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEGSTART: PUSH DS ;設置返回DOSSUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;給DS賦值BEGIN: MOV CX, COUNTLEA BX, ARRAYLEA SI, ARRAY1LEA DI, ARRAY2BEGIN1: MOV AX, [BX]CMP AX, 0 ;是負數(shù)碼?JS FUSHUMOV [SI], AX ;是正數(shù),存入正數(shù)數(shù)組INC COUNT1 ;正數(shù)個數(shù)+1ADD SI, 2JMP SHORT NEXTFUSHU: MOV [DI], AX ;是負數(shù),存入負數(shù)數(shù)組INC COUNT2 ;負數(shù)個數(shù)+1ADD DI, 2NEXT: ADD BX, 2LOOP BEGIN1LEA DX, ZHEN ;顯示正數(shù)個數(shù)MOV AL, COUNT1CALL DISPLAY ;調顯示子程序LEA DX, FU ;顯示負數(shù)個數(shù)MOV AL, COUNT2CALL DISPLAY ;調顯示子程序RETMAIN ENDP;DISPLAY PROC NEAR ;顯示子程序MOV AH, 9 ;顯示一個字符串的DOS調用INT 21HAAM ;將(AL)中的二進制數(shù)轉換為二個非壓縮BCD碼ADD AH, ‘0’ ;變?yōu)?~9的ASCII碼MOV DL, AHMOV AH, 2 ;顯示一個字符的DOS調用INT 21HADD AL, ‘0’ ;變?yōu)?~9的ASCII碼MOV DL, ALMOV AH, 2 ;顯示一個字符的DOS調用INT 21HLEA DX, CRLF ;顯示回車換行MOV AH, 9 ;顯示一個字符串的DOS調用INT 21HRETDISPLAY ENDP ;顯示子程序結束CSEG ENDS ;以上定義代碼段;END START 試編寫一個匯編語言程序,求出首地址為DATA的100D字數(shù)組中的最小偶數(shù),并把它存放在AX中。答:程序段如下:BEGIN: MOV BX, 0 MOV CX, 100COMPARE: MOV AX, DATA[BX] ;取數(shù)組的第一個偶數(shù)ADD BX, 2TEST AX, 01H ;是偶數(shù)嗎?LOOPNZ COMPARE ;不是,比較下一個數(shù)JNZ STOP ;沒有偶數(shù),退出JCXZ STOP ;最后一個數(shù)是偶數(shù),即為最小偶數(shù),退出COMPARE1: MOV DX, DATA[BX] ;取數(shù)組的下一個偶數(shù)ADD BX, 2TES
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1