《1》、实现绕圈的笑脸: assume cs:code code segment dec dh dec dl inc dh inc dl ;预存指令 start: mov ax,cs mov ds,ax mov si,0 lea di,s1 ;使ds:si指向预存指令,ds:di指向目的地址 mov dx,0h ;光标起始坐标0,0 s:mov ah,2 mov bh,0 int 10h ;调用int 10h第2号中断,置光标 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ah,0ah ;int 10h第0a号中断 mov al,2 ;显示笑脸 mov bh,0 ;第0页 mov cx,1 ;重复次数1 int 10h call delay ;延迟显示 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ah,0ah ;用int 10h 0a号中断清除笑脸 mov al,0 mov bh,0 int 10h ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cmp dh,24 ;行号是否为24 jb L ;小于则转 L mov ax,[si] ;等于则改s1处为自减 mov [di],ax L2:cmp dl,79 ;列号是否为79 jb L1 ;小于则转 L1 mov ax,[si+2] ;等于,改si+2处为自减 mov [di+2],ax jmp s1 L:cmp dh,0 ;行号是否为0 ja L2 ;大于0转L2 mov ax,[si+4] ;为0 ,改s1处为自加 mov [di],ax jmp L2 L1:cmp dl,0 ;列号是否为0 ja s1 ;大于转 s1 mov ax,[si+6] ;等于改 s1+2处 自加 mov [di+2],ax s1:inc dh inc dl jmp s mov ax,4c00h int 21h ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> delay:push ax push dx mov dx,2000h mov ax,0 s3: sub ax,1 sbb dx,0 cmp ax,0 jne s3 cmp dx,0 jne s3 pop dx pop ax ret ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> code ends end start 改进一下的【加中断可控制了】: assume cs:code code segment dec dh dec dl inc dh inc dl ;预存指令 start: mov ax,cs mov ds,ax mov si,0 lea di,s1 ;使ds:si指向预存指令,ds:di指向目的地址 mov dx,0h ;光标起始坐标0,0 s:mov ah,2 mov bh,0 int 10h ;调用int 10h第2号中断,置光标 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ah,0ah ;int 10h第0a号中断 mov al,2 ;显示笑脸 mov bh,0 ;第0页 mov cx,1 ;重复次数1 int 10h call delay ;延迟显示 in al,60H cmp al,10H jz over ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ah,0ah ;用int 10h 0a号中断清除笑脸 mov al,0 mov bh,0 int 10h ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cmp dh,24 ;行号是否为24 jb L ;小于则转 L mov ax,[si] ;等于则改s1处为自减 mov [di],ax L2:cmp dl,79 ;列号是否为79 jb L1 ;小于则转 L1 mov ax,[si+2] ;等于,改si+2处为自减 mov [di+2],ax jmp s1 L:cmp dh,0 ;行号是否为0 ja L2 ;大于0转L2 mov ax,[si+4] ;为0 ,改s1处为自加 mov [di],ax jmp L2 L1:cmp dl,0 ;列号是否为0 ja s1 ;大于转 s1 mov ax,[si+6] ;等于改 s1+2处 自加 mov [di+2],ax s1:inc dh inc dl jmp s over: mov ax,4c00h int 21h ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> delay:push ax push dx mov dx,500h mov ax,0 s3: sub ax,1 sbb dx,0 cmp ax,0 jne s3 cmp dx,0 jne s3 pop dx pop ax ret ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> code ends end start 《2》、像素颜色 ;子程序display入口参数 ;cx列号 ;dx行号 ;al像素颜色 ;子程序delay延时 stack segment stack db 100h dup(?) stack ends code segment assume cs:code,ds:code,ss:stack start: xor ax,ax ;设置显示模式(640*480 16色图形) mov ah,0 mov al,12h int 10h mov ah,0bh ;置调色板背景色 mov bh,0 mov bl,0 int 10h mov cx,0 mov dx,0 mov al,0 s2:call display call delay inc al cmp al,10h je exit add cx,10 jmp s2 exit: mov ah,01 int 21h ;esc退出观看效果 cmp al,1bh jne exit mov ax,0003h int 10h mov ax,4c00h int 21h display:push ax push bx push si mov bx,cx mov si,cx add si,10 s: mov ah,0ch int 10h inc cx cmp cx,si jne s mov cx,bx inc dx cmp dx,10 jne s mov dx,0 pop si pop bx pop ax ret delay:push ax push dx mov dx,2000h mov ax,0 s1:sub ax,1 sbb dx,0 cmp ax,0 jne s1 cmp dx,0 jne s1 pop dx pop ax ret code ends end start 《3》进制转换: (1)16转10进制: TITLE CONVERT HEXADECIMAL TO BCD DATA SEGMENT PROMPT DB 'Hello Boss! INPUT sixten bits number ,please :$' HEXBUF DB 3,0,3 DUP(0) DISP DB 0AH,0DH BCDBUF DB 6 DUP(0),'$' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 HEXBCD: MOV AX,DATA MOV DS,AX LEA DX,PROMPT MOV AH,09H INT 21H LEA DX,HEXBUF MOV AH,0AH INT 21H LEA SI,HEXBUF+2 MOV BX,0 MOV CH,HEXBUF+1 HEX1: MOV AL,[SI] CMP AL,'9' JBE NUMB SUB AL,07H NUMB: AND AL,0FH MOV CL,04 SAL BX,CL OR BL,AL INC SI DEC CH JNE HEX1 MOV WORD PTR BCDBUF+0,0 MOV WORD PTR BCDBUF+2,0 MOV WORD PTR BCDBUF+4,0 TEST BX,8000H JNS PLUS MOV BCDBUF,'-' NEG BX PLUS: MOV CH,0FH LOP0: CLC SHL BX,1 CALL ADDIT CALL MULTI DEC CH JNE LOP0 SHL BX,1 CALL ADDIT LEA DI,BCDBUF+1 MOV CX,3 LOP1: OR BYTE PTR [DI],30H INC DI LOOP LOP1 LEA DX,DISP MOV AH,09H INT 21H MOV AH,4CH INT 21H ADDIT PROC LEA DI,BCDBUF+3 MOV CL,3 ADD1: MOV AL,[DI] ADC AL,0 AAA MOV [DI],AL DEC DI DEC CL JNE ADD1 RET ADDIT ENDP MULTI PROC LEA DI,BCDBUF+3 MOV CL,3 CLC MUL1: MOV AL,[DI] ADC AL,AL AAA MOV [DI],AL DEC DI DEC CL JNE MUL1 RET MULTI ENDP COSEG ENDS END HEXBCD (2)十转十六进制: TITLE ADDITION DATA SEGMENT A1 DB "Input a number please: ","$" A2 DB 0DH,0AH,"The result is: ","$" DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET A1 MOV AH,9 INT 21H MOV AH,01H INT 21H AND AL,0FH SUB AH,AH ADD BX,AX MOV AH,01H INT 21H CMP AL,0DH JE ERR1 MOV DX,BX MOV CL,3 SAL BX,CL ADD BX,DX ADD BX,DX AND AL,0FH SUB AH,AH ADD BX,AX ERR1: MOV DX,OFFSET A2 MOV AH,9 INT 21H SUB AX,AX MOV CH,4 ERR2: MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JB ERR3 ADD AL,07H ERR3: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ ERR2 MOV AH,4CH INT 21H COSEG ENDS END START
相关推荐
汇编语言程序设计答案 汇编语言程序设计答案 汇编语言程序设计答案 汇编语言程序设计答案
本书为清华大学计算机汇编语言程序设计课教材,主要阐述IBM PC及其兼容机汇编语言程序程序设计的方法和技术。全书共13章:第一、二章介绍基础知识;第三、四章说明IBM PC机的指令系统及包括伪操作在内的汇编语言程序...
80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程....
汇编语言程序设计习题答案\80x86汇编语言程序设计习题答案.zip
ibm-pc汇编语言程序设计教程参考答案ibm-pc汇编语言程序设计教程参考答案ibm-pc汇编语言程序设计教程参考答案ibm-pc汇编语言程序设计教程参考答案ibm-pc汇编语言程序设计教程参考答案ibm-pc汇编语言程序设计教程参考...
第四章 汇编语言程序设计.pdf第四章 汇编语言程序设计.pdf第四章 汇编语言程序设计.pdf第四章 汇编语言程序设计.pdf第四章 汇编语言程序设计.pdf
80x86汇编语言程序设计 PPT讲解80x86汇编语言程序设计 PPT讲解
汇编语言程序设计期末复习汇编语言程序设计期末复习
汇编语言程序设计练习题及参考答案 汇编语言程序设计练习题及参考答案 汇编语言程序设计练习题及参考答案 汇编语言程序设计练习题及参考答案 汇编语言程序设计练习题及参考答案
《汇编语言程序设计》汇编.pdf
汇编语言程序设计(钱晓捷)课后答案 汇编语言程序设计(钱晓捷)课后答案
本书以新一代Pentium系列微处理器和MASM 6.1X为背景,全面系统地叙述了16/32位PC汇编语言程序设计方法和最新知识与技术。全书共12章,分为三个层次:基本原理方法篇(第一~六章)介绍了Pentium工作方式和扩展技术...
资源名称:西安交通大学《汇编语言程序设计》课程视频(36集)资源目录:【】西安交通大学汇编语言程序设计(1)【】西安交通大学汇编语言程序设计(10)【】西安交通大学汇编语言程序设计(11)【】西安交通大学汇编语言...
本书全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链接器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用VC++,BC++等最新编译器与汇编的混合...
本书全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用C/C++等最新编译器与汇编的混合接口编程...
汇编语言程序设计教程,适合刚接触汇编的人
INTEL汇编语言程序设计, 作者:Kip Irvine 包含 英文版 中文第4版 中文第5版
Intel汇编语言程序设计(第四版).rarIntel汇编语言程序设计(第四版).rarIntel汇编语言程序设计(第四版).rarIntel汇编语言程序设计(第四版).rarIntel汇编语言程序设计(第四版).rarIntel汇编语言程序设计(第...
关于8086汇编语言程序设计的教程pdf,详细介绍了8086汇编语言程序设计的理论
新版汇编语言程序设计课后答案,为了大家更好的学习汇编,钱晓捷著,电子工业出版社