还剩4页未读,继续阅读
文本内容:
9.按下面的要求写出程序的框架1数据段的位置从0E000H开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节;2堆栈段从小段开始,段组名(类别名)为STACK;3代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值;4程序结束答所求程序框架为DataSEGMENTAT0E000HArr_wLABELWORDArr_bDB100DUPDataENDSSta_segSEGMENTPARA‘STACK’DB80DUPTopLABELWORDSta_segENDSCodeSEGMENTASSUMECS:CodeDS:dataSS:sta_segORG1000HStart:MOVAXdataMOVDSAX MOVAX,Sta_segMOVSSAXMOVSPOFFSETTop……MOVAH4CHINT21HCodeENDSENDStart
10.编写一个程序,要求运行时屏幕显示‘BELL’,同时响铃一次响铃的ASCII码为07答所求程序为CodeSEGMENTASSUMECS:codeStart:MOVDL42HMOVAH2INT21H MOVDL45HMOVAH2INT21HMOVDL4CHMOVAH2INT21HMOVDL4CHMOVAH2INT21HMOVDL7MOVAH2INT21HMOVAH4CHINT21HCodeENDSENDStart
11.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X、Y和Z,试编制一完整的程序计算X+Y+Z,并将结果送X答所求程序为X_SEGSEGMENTXDW12eHX_SEGENDSY_SEGSEGMENTYDW4d2HY_SEGENDSZ_SEGSEGMENTSTACK‘STACK’ZDW2CAHZ_SEGENDSCodeSEGMENTASSUMECS:CodeDS:X_SEGES:Y_SEGSS:Z_SEGStart:MOVAXX_SEGMOVDSAXMOVAXY_SEGMOVESAXMOVAX,ES:YADDXAXMOVBP0MOVAX[BP+Z]ADDXAXMOVAH4CHINT21HCodeENDSENDStart
12.写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的DADD1和附加段E_SEG中的DADD2相加,并把结果存放在D_SEG段中的SUM中其中DADD
1、DADD2和SUM均为双字类型,DADD1赋值为98765,DADD2赋值为-15893答所求程序为D_SEGSEGMENTDADD1DD98765SUMDDD_SEGENDSE_SEGSEGMENTDADD2DD-15893E_SEGENDSC_SEGSEGMENTASSUMECS:C_SEGDS:D_SEGES:E_SEGStart:MOVAXD_SEGMOVDSAXMOVAXE_SEGMOVESAX MOVAX,WORDPTRDADD1MOVBX,WORDPTRDADD1+2ADDAXWORDPTRES:DADD2ADCBXWORDPTRES:DADD2+2MOVWORDPTRSUMAXMOVWORDPTRSUM+2BXMOVAH4CHINT21HC_SEGENDSENDStart。