[工学]汇编实验八.doc

上传人:音乐台 文档编号:1977619 上传时间:2019-01-27 格式:DOC 页数:12 大小:95KB
返回 下载 相关 举报
[工学]汇编实验八.doc_第1页
第1页 / 共12页
[工学]汇编实验八.doc_第2页
第2页 / 共12页
[工学]汇编实验八.doc_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]汇编实验八.doc》由会员分享,可在线阅读,更多相关《[工学]汇编实验八.doc(12页珍藏版)》请在三一文库上搜索。

1、计算机组成原理与汇编元程序设计实验报告实验八 实验考核:汇编程序综合设计实验 姓名:代凤 学号: 20101120165 序号:25 班级:1班 分数:1编写程序,实现表的处理:内存单元中有一个ASCII码表,编写程序完成下面的功能: 首先输出表的内容; 插入一个数据,插入的数据和插入的位置从键盘输入; 对表中的数据进行排序,按升顺或降顺排序可以进行选择; 在表中查找某一个关键字,要查找的关键字从键盘输入;如果找到,输出查找的关键字并给出提示“find”,否则给出提示“no find”; 程序执行以后,输出表中的插入以后的内容和排序以后的内容; 程序有友好的运行界面;要求程序能够处理基本的错误

2、信息;程序:data segment num1 db 83h,47h,35h,56h,29h,11h,18h,62h num2 db 11 dup(0) num3 db 11 dup(0) str0 db 0dh,0ah,$ str1 db please input where do you inset the data:,0dh,0ah,$ str2 db please input the data:,0dh,0ah,$ str3 db please input which data do you reserch,0dh,0ah,$ str4 db from big to lit chose

3、 1 from lit to big chose 2,0dh,0ah,$ str5 db find,0dh,0ah,$ str6 db no find,0dh,0ah,$data endsstack segment stack db 200 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov di,offset num1 mov bh,9call display mov dx,offset str0 mov ah,9 int 21h mov dx,offs

4、et str1 mov ah,9 int 21h xor dx,dx mov di,offset num2 mov ah,1 int 21h sub al,31h xor ah,ah add di,ax mov dx,offset str0 mov ah,9 int 21h mov dx,offset str2 mov ah,9 int 21h call input mov di,dl mov dx,di mov di,offset num2 sub dx,di mov si,offset num1 add dx,si mov cl,10hlop1: cmp dx,si jz T3 mov a

5、l,si mov di,al add si,1 add di,1 jmp next2 T3: add di,1 mov al,si mov di,al add si,1 add di,1next2: loop lop1 mov di,offset num2 mov bh,10 mov dx,offset str0 mov ah,9 int 21h call display mov dx,offset str0 mov ah,9 int 21h mov dx,offset str3 mov ah,9 int 21h call input mov di,offset num2 mov cl,10

6、lop3: mov al,di cmp al,dl jz T4 add di,1 jmp refindT4: mov dx,offset str0 mov ah,9 int 21h mov bh,1call display mov dx,offset str5 mov ah,9 int 21h jmp exitrefind:loop lop3 mov dx,offset str0 mov ah,9 int 21h mov dx,offset str6 mov ah,9 int 21hexit: mov cx,10 dec cxoutlp: mov dx,cx mov di,offset num

7、2inlp: mov al,di cmp al,di+1 jna next4 xchg al,di+1 mov di,alnext4: inc di dec dx jnz inlp loop outlp mov cx,10 mov di,offset num2 mov si,offset num3 add si,9lop4: mov al,di mov si,al add di,1 sub si,1 loop lop4 mov dx,offset str4 mov ah,9 int 21h call input cmp dl,1 jnz T5 mov di,offset num3 xor bx

8、,bx mov bh,10 mov dx,offset str0 mov ah,9 int 21hcall display jmp overT5: mov di,offset num2 xor bx,bx mov bh,10 mov dx,offset str0 mov ah,9 int 21h call display over: mov ah,4ch int 21hdisplay proc mov cl,4 mov bl,0lop2: mov dl,di xor dh,dh push dx shr dl,cl or dl,30h cmp dl,39h jbe twic1 add dl,7t

9、wic1: mov ah,2 int 21h pop dx and dl,0fh or dl,30h cmp dl,39h jbe twic2 add dl,7 twic2: mov ah,2 int 21h add di,1 add bl,1 mov dl,20h mov ah,2 int 21h cmp bl,bh jnz lop2 retdisplay endp input proc xor cl,cl xor dl,dlagain: mov ah,1 int 21h cmp al,0dh jz next cmp al,39h jbe T1 sub al,57h jmp T2T1: su

10、b al,30hT2: shl dl,cl add dl,al add cl,4 jmp againnext: xor cl,cl retinput endpcode ends end start 运行结果:2编写功能完善运算器程序,实现四则运算及进制转换。 要求:提供设计报告。所有程序要求提供算法,程序框图,程序测试截图。重要内容要求有解释!程序:CURS MACRO A,B MOV AH,2 MOV BH,0MOV DH,A MOV DL,B INT 10H ;BIOS ENDM ;- DISPMSG MACRO MESSAGE LEA DX,MESSAGE MOV AH,9INT 21H

11、ENDM ;- CLEAR MACRO COLOR MOV AH,6MOV AL,0MOV CH,0 MOV CL,0 MOV DL,100 MOV DH,100 MOV BH,COLOR INT 10HENDM .MODEL SMALL .STACK .DATAMSG0 DB * * * * * * * * * * * * * * * * * * * *,0DH,0AH ;,0dh,0ah,0dh,0ah DB * *,0DH,0AH ;db * *,0dh,0ah ;db * *,0dh,0ah DB * -COUNTER- *,0DH,0AH ;,0dh,0ah,0dh,0ah DB *

12、 *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * DATA1: DB _ *,0DH,0AH ;,0dh,0ah,0dh,0ah,0dh DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH DB * DATA2: DB _ *,0DH,0AH ;,0dh,0ah,0dh,0ah,0dh DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH DB * RESULT: DB _ *,0DH,0AH,0DH ;,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh DB *

13、*,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * * * * * * * * * * * * * * * * * * * *,$ MSG1 DB choose +,-,*,/,$ MSG2 DB you choose wrong,$,0AH,0DH MSG3 DB Press ESC to Exit!,0DH,0AH,$ MSG4 DB Press any key to continue!,0DH,0AH,$ MSG5 DB -,$ MSG6 DB .,$ MSG7 DB error input

14、!,$ MSG8 DB data2 is wrong!,$ DATA1 DW ? DATA2 DW ? .CODE;- DEC_DIV PROC NEAR CWDDIV CX PUSH DX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H POP DX MOV AX,DX RET DEC_DIV ENDP ;- CHANGE PROC NEAR CMP AX,1000 JAE C1 CMP AX,100 JAE C2 CMP AX,10 JAE C3 JMP C4C1: MOV CX,1000D CALL DEC_DIV C2: MOV CX,100D CALL D

15、EC_DIV C3: MOV CX,10D CALL DEC_DIV C4: MOV CX,1D CALL DEC_DIV RET CHANGE ENDP ;- BEGIN PROC NEAR BACK: CLEAR 1EH CURS 2,20 DISPMSG MSG0CURS 8,41 MOV BX,0 MOV CX,2 NEWCHAR1: MOV AH,1 INT 21HCMP AL,30HJAE J1 JMP D2 J1: CMP AL,39HJBE J2JMP D2 J2: SUB AL,30H CBWXCHG AX,BX MOV DI,10 MUL DI XCHG AX,BX ADD

16、 BX,AX LOOP NEWCHAR1 MOV DATA1,BX CURS 11,41 MOV BX,0 MOV CX,2 NEWCHAR2: MOV AH,1INT 21H CMP AL,30H JAE J3JMP D2 J3: CMP AL,39HJBE J4JMP D2 J4: SUB AL,30HCBWXCHG AX,BX MOV DI,10 MUL DI XCHG AX,BX ADD BX,AX LOOP NEWCHAR2 MOV DATA2,BX MOV AX,DATA1 MOV BX,DATA2 PUSH AX PUSH BX CURS 15,33 DISPMSG MSG1MO

17、V AH,1 INT 21HCMP AL,+ JE ADDI CMP AL,- JE SUBTCMP AL,* JE MULTCMP AL,/ JE DIVI CURS 16,25 DISPMSG MSG2JMP D1 ;- ;ADD THE TWO DATAS ADDI: POP BX POP AX ADD AX,BX PUSH AX CURS 14,41 POP AX CALL CHANGE JMP D1 ;- ;SUBTRACT THE TWO DATAS SUBT: POP BX POP AX CMP AX,BX JAE D0 XCHG AX,BX PUSH AX PUSH BX CU

18、RS 14,40 DISPMSG MSG5 POP BX POP AX D0: SUB AX,BX PUSH AX CURS 14,41 POP AX CALL CHANGE JMP D1 ;- ;MULTIPLY THE TWO DATAS MULT: POP BX POP AX MUL BX PUSH AX CURS 14,41 POP AX CALL CHANGEJMP D1 ;- ;DIVIDE THE TWO DATAS DIVI: POP BX POP AX CMP BX,0JE ERRORCWD DIV BXPUSH DX PUSH AX CURS 14,41POP AX CAL

19、L CHANGEPOP DX CMP DX,0 JNE LOP JMP D1 LOP: MOV CX,4 PUSH DX DISPMSG MSG6 POP DX CON: PUSH BX MOV AX,DX MOV BX,10 MUL BX POP BX CWD DIV BX PUSH DX PUSH CX CALL CHANGE POP CX POP DX CMP DX,0 JE D1 LOOP CON ERROR: CURS 15,33DISPMSG MSG8 D1: RET D2: PUSH AX PUSH BX CURS 15,33 DISPMSG MSG7 POP BX POP AX RET BEGIN ENDP ;- MAIN PROC NEAR MOV AX,DATA MOV DS,AX MOV ES,AX PUSH DS XOR AX,AX PUSH AX MOV DATA2,0MOV DATA1,0 AGAIN: CALL BEGIN CURS 16,23 DISPMSG MSG3CURS 17,23DISPMSG MSG4 MOV AH,7 INT 21HCMP AL,27 JNE AGAINEXIT: MOV AX,4C00H INT 21HMAIN ENDP END MAIN运行结果:- 12 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1