要求掌握的汇编语言程序.doc_第1页
要求掌握的汇编语言程序.doc_第2页
要求掌握的汇编语言程序.doc_第3页
要求掌握的汇编语言程序.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

汇编语言程序设计1 将串HELLO!由原位置复制至目的位置DATA SEGMENTSRC_MESS DB HELLO!DATA ENDSEXTRA SEGMENTNEW_LOC DB 6 DUP(?)EXTRA ENDSCODE SEGMENT ASSUME CS:CODE , DS:DATA , ES:EXTRASTART: MOV AX, DATA MOV DS , AX MOV AX, EXTRA MOV ES , AX LEA SI, SRC_MESS LEA DI, NEW_LOC MOV CX, 6 CLD REP MOVSB MOV AH, 4CH INT 21HCODE ENDS END START2 将内存BUF1中的16进制数反向传送到BUF2中,要求BUF1的内容不被破坏,并统计BUF1中1的个数,(程序中,要求自己定义BUF1中数的数值)。参看课本122页,第三章习题12。DATA SEGMENT BUF1 DW 42F8H BUF2 DW ? NUM DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX, 16 MOV BX, 0 MOV AX,BUF1 next: ROR AX, 1 JNC COUNT INC BL COUNT: RCL DX,1 LOOP next MOV BUF2,DX MOV NUM,BL MOV AH,4CH INT 21HCODE ENDS END START3 编程实现下列函数的功能,其中X、Y为无符号字节数DATSEGMENTXDB24HYDB67HZDB?DATENDS CODSEGMENTASSUME DS: DAT, CS: CODMAINPROCFARPUSHDS; 保存返回地址SUBAX, AXPUSHAXMOVAX, DATMOVDS, AX; 初始化DSMOVAL, XMOVBL, YCMPAL, BLJEC1; (AL)(BL) 则跳转至C1,否则继续执行JAC2; (AL) (BL) 则跳转至C2,否则继续执行MOVAL, -1JMP EXTC1: MOVAL, 0JMP EXTC2: MOVAL, 1EXT: MOVZ, AL RET; 返回DOSMAINENDPCODENDSENDMAIN4八个数放在数据段中,求它们的和、最大值和最小值并放在数据段中(程序中,要求自己定义八个数的数值)。DATA SEGMENT ARRAY DW 353H,124H,512H,268H,600H,953H,740H,862H SUM DW ? MAX DW ? MIN DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,7 MOV SI,0 MOV AX,ARRAYSI ;SUM MOV BX,ARRAYSI ;MAX MOV DX,ARRAYSI ;MIN NEXT: INC SI INC SI ADD AX,ARRAYSI CMP BX,ARRAYSI JG JMIN MOV BX,ARRAYSIJMIN: CMP DX,ARRAYSI JL LP MOV DX,ARRAYSILP: LOOP NEXT MOV SUM,AX MOV MAX,BX MOV MIN,DX MOV AH,4CH INT 21HCODE ENDS END START5 用过程调用方法,对数据段两个N字节BCD码数求和(程序中,要求自己定义两个数的数值)。DATA SEGMENT ONE DB 55H,22H,11H,44H TWO DB 11H,88H,99H,22H SUM DB 4 DUP (?) N DW 4 DATA ENDSSTACK SEGMENT STACK STACK STT DB 100 DUP(?)TOP EQU LENGTH STTSTACK ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,STACK MOV SS,AX MOV SP,TOP PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,ONE LEA BX,TWO LEA DI,SUM CLD CLC MOV CX,N LP: CALL ADDBCD LOOP LP RETMAIN ENDPEND STARTADDBCD PROC NEAR LODSB ADC AL,BX DAA STOSB INC BX RETADDBCD ENDP6 从键盘输入字符存入内存缓冲区并同时显示在屏幕上,输入$时停止。DATA SEGMENT BUF DB 80 DUP (0)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,BUFINPUT:MOV AH,01 INT 21H MOV SI,AL INC SI CMP AL,$ JNZ INPUT MOV DL,2AH ;* MOV AH,02H INT 21H MOV AH,4CH INT 21HCODE ENDS END START7 在屏幕上输出Hello , World !DATA SEGMENT BUF DB Hello, World! $DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:

温馨提示

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

最新文档

评论

0/150

提交评论