福州大学汇编实验答案参考

上传人:平*** 文档编号:12686920 上传时间:2017-10-20 格式:DOC 页数:8 大小:389.45KB
返回 下载 相关 举报
福州大学汇编实验答案参考_第1页
第1页 / 共8页
福州大学汇编实验答案参考_第2页
第2页 / 共8页
福州大学汇编实验答案参考_第3页
第3页 / 共8页
福州大学汇编实验答案参考_第4页
第4页 / 共8页
福州大学汇编实验答案参考_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《福州大学汇编实验答案参考》由会员分享,可在线阅读,更多相关《福州大学汇编实验答案参考(8页珍藏版)》请在金锄头文库上搜索。

1、DATA SEGMENTARRAY DB 12,34,56,-12,-34,-9,0,3,0,-5,3,5DB 0AH,0FFH,4,0,77H,88H,0F0H,0BBHCOUNT EQU $-ARRAYSUM1 DW 0 ;存正数累加和SUM2 DW 0 ;存负数绝对值累加和CUNT1 DB 0 ;存正数数据个数CUNT2 DB 0 ;存负数数据个数 DATA ENDSSTACK1 SEGMENT PARA STACKSTA DW 20H DUP(0)STACK1 ENDSCOSEG SEGMENTASSUME CS:COSEG,DS:DATA,SS:STACK1START: MOV AX

2、,DATAMOV DS,AXXOR AX,AXXOR BX,BXXOR CX,CXXOR DX,DXLEA SI,ARRAYMOV CL,COUNTLOP: TESTBYTE PTR SI,80HJE PLUSMOV CH,SI ; 求负数绝对值NEG CHADD BL,CH ; 负数绝对值累加ADC BH,0INC DL ; 个数计数JMP NEXTPLUS: ADD AL,SI ; 正数累加ADC AH,0INC DH ; 个数计数NEXT: INC SIDEC CLJNE LOPMOV SUM1,AX ; 存结果MOV SUM2,BXMOV CUNT1,DHMOV CUNT2,DLMOV

3、 AH,4CHINT 21HCOSEG ENDSEND START2、上机题目:两个八位数的相加运算 内容: DAT 开始的单元中存放两个八位二进制数,两个数相加后结果存入 SUM 单元中。 ( SUM 为十六位 )DAT DB X1,X2 SUM DW ?无符号数 有符号数data segmentdat db 0feh,05hsum dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,datxor ah,ahadd al,dat+1adc ah,0mov sum,axcode ends

4、end startdata segmentdat db 0feh,05hsum dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,datcbwmov bx,axmov al,dat+1cbwadd ax,bxmov sum,axcode endsend start1、上机题目:统计正数(负数)的个数内容:DAT 开始的单元中存放 N 个字节有符号数,统计正数的个数存入 T0 单元中;负数的个数存入 T1 单元中;Dat DB X1,XNT0 DB ?T1 DB ?data segmen

5、tdat db 12,23,-45,-82,91,64,0,-2,4,37count equ $-datt0 db ?t1 db ?data endscodesegmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov cx,countmov si,0lop: test datsi,80hje plusinc t1 ; 个数计数jmp nextplus: inc t0 ; 个数计数next: inc sidec cxcmp cx,0jne lopmov ah,4chint 21hcodeendsend start2、上机题目:无符号数排

6、序 内容:TAB 开始的单元中存放 N 个字节无符号数,请按照从大到小排序后,存入 DAB 单元中。 (选作:从小到大排序)TAB DB X1,XNDAB DB N DUP(?)data segment tab db 01h,10h,05h,60h,30h,11hn equ $-tabdab db n dup(?)data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov bx,0mov cx,nq:mov al,tabbxmov dabbx,alinc bxloop qmov cx,ndec cxlop:m

7、ov di,cxmov bx,0lop1: mov al,dabbxcmp al,dabbx+1jnb nextxchg al,dabbx+1mov dabbx,alnext: inc bxdec cxcmp cx,0jnz lop1mov cx,didec cxcmp cx,0jnz lopmov ah,4chint 21hcode endsend start1、上机题目: 求最大数(最小数)内容:DAT 开始的字单元中存放 N 个无符号数,求出最大数存入 MAX 单元中。( 求出最小数存入 MIN 单元中 )DAT DW X1,XNMAX DW ?MIN DW ?data segmentd

8、at dw 6,2,3,1,5,4,2count equ ($-dat)/2max dw ?min dw ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov cx,count-1mov si,0mov ax,datsimov bx,datsij0: add si,2cmp ax,datsijnb j1mov ax,datsij1: cmp datsi,bxjnb j2mov bx,datsij2: loop j0mov max,axmov min,bxmov ah,4chint 21hcode e

9、ndsend start2、上机题目:数据查找 内容:TABLE 开始的字节单元中存放 N 个无符号数,dt 单元存放一个已知数据 X,现从 TABLE 中查找是否存在数据 X,如果存在,NO 单元存放该数据在 TALBE 中的序号,否则 NO 单元存放 FFH 。TABLE DB X1,XNdt DB xno DB ?data segment table db 55h,01h,60h,12h,22hcount equ $-tabledat db 0hno db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov

10、ds,axmov cx,countmov si,0mov al,datlop: cmp tablesi,aljz j0inc siloop lopj0: cmp cx,0jnz nextmov al,0ffhmov no,aljmp donenext: mov ax,simov no,aljmp donedone: mov ah,4chint 21hcodeendsend start1、上机题目:代码转换内容:用子程序设计的方法,分别把 BUF 字单元中的四个十六进制数转换为 ASCII 代码存入 MAS 开始的单元中,并在 crt 上显示。 BUF DW X MAS DB 4 DUP(?)d

11、ata segmentbuf dw 21AChmas db 4 dup(?)data endscodesegmentassume cs:code,ds:datamain proc nearmov ax,datamov ds,axcall decbinmov ah,4chint 21hmain endpdecbin proc nearpushdxmov si,0mov ch,4hlop: mov cl,4hmov ax,bufrol ax,clmov buf,axand ax,0fhcmp al,0ahjb yesadd al,7yes: add al,30hmov massi,almov dl

12、,almov ah,2int 21hinc sidec chcmp ch,0jnz loppop dxretdecbin endpcodeendsend main2、上机题目:键盘输入内容:用子程序设计的方法,要求从键盘输入一串字母,在 CRT 上依次显示该串字母的 ASCII 代码。做法 A 做法 Bdata segmentbuf db 100db ?db 100 dup(?)data endscode segmentassume ds:data,cs:codemain proc farcall asciimov ax,4chint 21hmain endpascii proc nearmo

13、v ax,datamov ds,axmov si,offset bufmov dx,offset bufmov ah,0ahint 21hcall crlfinc simov cl, simov ch,0inc siagn: mov bl,simov dl,sishr dl,1shr dl,1shr dl,1shr dl,1add dl,30hmov ah,2int 21hand bl,0fhadd bl,30hcmp bl,39hjl shoreadd bl,7shore: mov dl,blmov ah,2int 21hcall crlfinc siloop agnretascii end

14、pcrlf proc nearmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21hretcrlf endpcode endsend maindata segmentbuf db 100db ?db 100 dup(?)data endscode segmentassume cs:code,ds:datamain proc farmov ax,datamov ds,axcall decbincall crlfcall binihexcall crlfmov ah,4chint 21hmain endpdecbin proc nearlea dx,b

15、ufmov ah,10int 21hretdecbin endpbinihex proc nearpush dxxor ax,axxor cx,cxmov si,0mov bl,buf+1lop1: mov ch,02hprint: mov cl,04hmov al,bufsi+2rol al,clmov bufsi+2,aland ax,0fhcmp al,0ahjs nextadd al,07hnext: add al,30hmov dl,almov ah,2hint 21hdec chcmp ch,0hjnz printcall crlfinc sicmp si,bxjs lop1pop dxretbinihex endpcrlf proc nearmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21hretcrlf endpcode endsend main1、上机题目:将 DAT 数组的 N 个无符号数分成两个数组,偶数数组 P 和奇数数组 M,统计并在 CRT 上显示两个数组数据个数。 DAT DW X1,XN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号