例题程序清单精简.doc_第1页
例题程序清单精简.doc_第2页
例题程序清单精简.doc_第3页
例题程序清单精简.doc_第4页
例题程序清单精简.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;exp1.asm ;sample 顺序结构 查09平方表 DATA SEGMENT INPUT DB PLEASE INPUT X(09):$ TABLE Db 0,1,4,9,16,25,36,49,64,81 XX DB ? YY DB ? DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,INPUT INT 21H MOV AH,1 INT 21H AND AL,0FH MOV XX,AL MOV BX,OFFSET TABLE MOV AH,0 MOV AL,XX ADD BX,AX MOV AL,BX MOV YY,AL RET START ENDP CODE ENDS END STARTexp3.asm;sample 分支结构 DATA SEGMENT XX DB 56 YY DB ? DATA ENDS STACK SEGMENT PARA STACK DB 256 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BIGER MOV AL,-1 JMP EQUL BIGER: JE EQUL MOV AL,1 EQUL: MOV YY,AL MOV AH,4CH INT 21H CODE ENDS END STARTexp5.asm;sample 分支结构 跳转表 DATA SEGMENT BASE DW SBR0,SBR1,SBR2,SBR3 BN DB 3 DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV BL,BN MOV BH,0 SHL BX,1 JMP BASEBX SBR0: MOV AH,2 MOV DL,0 INT 21H RET SBR1: MOV AH,2 MOV DL,1 INT 21H RET SBR2: MOV AH,2 MOV DL,2 INT 21H RET SBR3: MOV AH,2 MOV DL,3 INT 21H RET START ENDP CODE ENDS END STARTexp52.asm;sample 分支结构 跳转指令表 DATA SEGMENT BN DB 3 DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AL,BN MOV AH,0 ADD AX,AX MOV BX,OFFSET BASE ADD BX,AX JMP BX BASE: JMP SBR0 JMP SBR1 JMP SBR2 JMP SBR3 SBR0: MOV AH,2 MOV DL,0 INT 21H RET SBR1: MOV AH,2 MOV DL,1 INT 21H RET SBR2: MOV AH,2 MOV DL,2 INT 21H RET SBR3: MOV AH,2 MOV DL,3 INT 21H RET START ENDP CODE ENDSEND START ; EXP6.ASM sample 循环结构 统计数据块负数的个数 DATA SEGMENT BUF DB -1,3,5,-7,99,-120,127,-128,56,2 CUNT EQU $-BUF SUM DW ? DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,CUNT MOV DX,0 LP1: MOV AL,BX AND AL,AL JNS PLUS INC DX PLUS: INC BX LOOP LP1 MOV SUM,DX MOV AH,4CH INT 21H CODE ENDS END MAIN; EXP7.ASM sample 循环结构 CODE SEGMENT ASSUME CS:CODE MAIN: MOV CX,0 LP: AND AX,AX JZ EXIT SAL AX,1 JNC ZERO INC CX ZERO: JMP LP EXIT: MOV AH,4CH INT 21H CODE ENDSEND MAIN;EXP8.asmDATA SEGMENT BUF DB 02H,38H,47H,33H,09H,76H,7BH,23H CUNT EQU $-BUF SUM DB 3 DUP(0) DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX MOV BX,0 MOV CX,CUNT LP1: MOV AL,BUFBX CMP AL,30H JB NEXT CMP AL,39H JA ABC1 INC SUM0 JMP NEXT ABC1:CMP AL,A JB NEXT CMP AL,Z JA abc2 INC SUM1 JMP NEXT abc2:CMP AL,a JB NEXT CMP AL,z JA NEXT INC SUM2 NEXT:INC BX LOOP LP1 MOV AH,4CH INT 21H CODE ENDS END MAIN; EXP9.ASM sample 子程序调用 寄存器传递参数 DATA SEGMENT BUFFER1 DB 90,-56,98,12,68,-100,37,15,-4 CUNT1 EQU $-BUFFER1 RESULT1 DW ?BUFFER2 DB 101,32,-89,16,82,25,91,84,71 CUNT2 EQU $-BUFFER2 RESULT2 DW ? DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFFER1 MOV CX,CUNT1 CALL SUM MOV RESULT1,AXMOV SI,OFFSET BUFFER2 MOV CX,CUNT2 CALL SUM MOV RESULT2,AX MOV AH,4CH INT 21H;入口参数:SI:数组首地址,CX:数组长度;出口参数:AX:求和 SUM PROC MOV AX,0 CMP CX,0 JZ EXIT AGAIN:PUSH AX MOV AL,SI CBWMOV BX,AXPOP AXADD AX,BX INC SI LOOP AGAIN EXIT:RET SUM ENDP CODE ENDS END MAIN ;sample 子程序调用 参数地址表传递参数 DATA SEGMENT BUFFER DB 11,22,33,44,55,66,77,88,99,101,111,122 CUNT DW $-BUFFER RESULT DW ? TABLE DW 3 DUP(?) DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX MOV TABLE,OFFSET BUFFER MOV TABLE+2,OFFSET CUNT MOV TABLE+4,OFFSET RESULT LEA BX,TABLE CALL SUM MOV AH,4CH INT 21H;入口参数 BX:参数地址表的首地址 SUM PROC MOV SI,BX MOV BP,BX+2 MOV CX,DS:BPMOV DI,BX+4MOV AX,0 CMP CX,0 JZ EXIT AGAIN:ADD AL,SI ADC AH,0 INC SI LOOP AGAIN MOV DI,AX EXIT:RET SUM ENDP CODE ENDS END MAIN ;sample 子程序调用 堆栈传递参数 DATA SEGMENT ARRAY DB 11,22,33,44,55,66,77,88,99,101,111,122 CUNT DW $-ARRAY RESULT DW ? DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX LEA BX,ARRAY PUSH BX LEA BX,CUNT PUSH BX LEA BX,RESULT PUSH BX CALL far ptr SUM MOV AH,4CH INT 21H CODE ENDS CODE2 SEGMENT ASSUME CS:CODE2 SUM PROC FAR PUSH AX PUSH BX PUSH CX PUSH BP MOV bp,SP MOV BX,BP+14 MOV CX,BX MOV BX,BP+12 MOV SI,BP+16 MOV AX,0CMP CX,0 JZ EXIT AGAIN:ADD AL,SI ADC AH,0 INC SI LOOP AGAIN MOV BX,AX EXIT:POP BP POP CX POP BX POP AX RET 6 SUM ENDP CODE2 ENDS END main;EXP10.ASMDATA SEGMENT ARY DB 56H,78H,12H,99H,34H,23H,32H ;BCD code CUNT DW $-ARY RESULT DW ? DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP (?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX LEA BX,ARY PUSH BX LEA BX,CUNT PUSH BX LEA BX,RESULT PUSH BX CALL far ptr SUM MOV AH,4CH INT 21H CODE ENDS CODE2 SEGMENT ASSUME CS:CODE2 SUM PROC FAR PUSH AX PUSH BX PUSH CX PUSH B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论