[精品]汇编重点总结小抄.doc_第1页
[精品]汇编重点总结小抄.doc_第2页
[精品]汇编重点总结小抄.doc_第3页
[精品]汇编重点总结小抄.doc_第4页
[精品]汇编重点总结小抄.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

精品汇编重点总结小抄 1.编写一个宏清屏任意区域宏定义CLS MACROR1,C1,R2,C2,X MOV AH,6;调用int10H的6号功能MOV AL,0;清屏MOV BH,X;若X=70H,白底黑字MOV CH,R1MOV CL,C1MOV DH,R2MOV DL,C2INT10H ENDM2.求带符号的字数组的最大值.data countdw5array dw8,-1,56,0,100max dw?.code.startup leasi,array mov cx,count dec cx callfindmax mov max,ax mov ah,4ch int21h3.CPU与外设之间的数据传送方式有_程序直接控制_、_中断传送和_DMA_。 4.中断概念使CPU中止正在执行的程序而转而去处理特殊事件的操作。 内部中断(异常):由指令执行引起、通过软件设置的中断、由CPU出错引起的中断外部中断由外部硬件信号引起、可屏蔽中断、非屏蔽中断显示中断的两种方法DOS中断调用,BIOS中断调用5.排序START:MOV AX,DATA;A字类型的数组MOV DS,AX MOV CX,N;N EQU($-A)/2DEC CXLOOP1:MOV DI,CX MOVBX,0LOOP2:MOV AX,ABXCMP AX,ABX+2JLE NEXTXCHG AX,ABX+2MOVABX,AX显示器INT10H(BIOS中断)2号功能置光标位置入口参数BH=页号(单色显示页号为0)DH=行号(指字符行和列)DL=列号6号功能屏幕初始化或上卷入口参数AL0上卷行数AL=0清屏(全屏滚动)BH=卷入行属性CH=左上角行号CL=左上角列号(左上角坐标)DH=右下角行号DL=右下角列号(右下角坐标)findmax proc mov ax,sinext:cmp ax,si+2jg skipmov ax,si+2skip:add si,2loop nextret findmaxendp codeends endNEXT:ADD BX,2LOOP LOOP2MOV CX,DI LOOP LOOP1。 CODE ENDS键盘功能:INT21H(DOS)01H调用等待从键盘输入一个字符并回显在屏幕上,返回字符的ASCII码送AL。 检测CTRLBREAK、CTRL-C。 例MOV AH,1INT21H02H调用:显示一个字符(检验CTRL-BREAK)入口参数DL=字符的ASCII码例MOV AH,02H MOVDL,*INT21H09H调用显示字符串入口参数DS:DX=串首地址,串以$结束注意输出缓冲区定义OUTBUF DBOUTPUT DATA:,$例MOV AH,09H LEA DX,OUTBUF INT21H6.从键盘输入一字符,若为Y,则从键盘接受一个字符串;若为N,则结束程序;若都不是则循环读键盘。 DATA SEGMENT STRING DB20,?,20DUP(?);定义存放字符串的缓冲区DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA MAINPROC FARSTART:MOV AX,DATA MOVDS,AX LOP1:MOV AH,1;从键盘读入一个字符INT21H CMPAL,Y;若为“Y”,转输入字符串程序段JZ IN_STRING CMPAL,N;若为“N”,结束程序JZ EXITJMP LOP1;若都不是,循环读键盘字符IN_STRING:LEADX,STRING;从键盘输入一字符串MOV AH,0AH INT21H EXIT:MOV AX,4C00H INT21H MAINENDP CODEENDS ENDSTART0AH调用输入字符串到缓冲区入口参数DS:DX指向缓冲区首地址注意缓冲区的定义形式必须如下所示INBUF DB20;缓冲区字符最多个数DB?;系统填写实际输入的字符个数DB20DUP(?);输入的字符串例MOV AH,0AH MOVDX,OFFSET INBUFINT21H LOOPlabel;CXCX1,CX0,循环到标号label LOOPZlabel;CXCX1,CX0且ZF1,循环到标号label LOOPNZlabel;CXCX1,CX0且ZF0,循环到标号label-?循环终止条件!CWD DX:AX CBDAH:AL7.编写程序,当无键按下时,循环等待,当有键按下时,从键盘读10个按键,并将其扫描码和字符码保存到内存单元中L2:MOV AH,0;用INT16H的功能0读键盘INT16H DATA SEGMENTSTRINGDB20DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA MAINPROC FARMOV AX,DATA;初始化DS MOVDS,AX L1:MOV AH,1;探测读键盘INT16H JZL1;无键按下则循环LEA SI,STRING MOVCX,10MOVSI,AL;保存字符码MOVSI+1,AH;保存扫描码ADD SI,2LOOPL2;循环10次MOV AX,4C00H INT21H MAINENDP CODEENDS ENDMAIN第4章1.数组求和DATASEGMENTARRAY DB1,4,6,9,2SUM DW?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOVDS,AX MOVAX,0MOV SI,0MOVCX,5AGN:ADD AL,ARRAYSIADC AH,0INC SILOOP AGNMOV SUM,AX MOVAH,4CH INT21H CODEENDS ENDSTART2.伪指令用来完成数据的定义、分配存储区、指示程序结束、定义数据、代码、堆栈段等。 3.机器指令语句汇编后形成机器代码,在执行时引起机器操作伪指令语句不形成机器代码,只在汇编过程中起作用第5章1.转移类指令无条件转移指令JMP;条件转移指令J(表示条件)2.段内直接转移JMP SHORTLP1;段内短转移位移128+127字节JMP NEARPTR LP2;段内近转移位移32768+32767字节3.段内间接转移目标地址是由一个16位通用寄存器、或内存单元来寻址。 4.段间直接转移JMP FARPTR标号(地16位IP+高16位CS)5.段间间接转移JMP DWORDPTRBPDI6.条件转移指令的寻址方式全部是段内直接短转移(short型)7.计算AX的绝对值cmp ax,0jns nonneg;分支条件AX0neg ax;条件不满足,求补nonneg:mov result,ax;条件满足8.将AX中存放的无符号偶数除以2,如果是奇数,则加1后除以2test ax,01h;测试AX最低位jz even;最低位为0AX为偶数add ax,1;最低位为1AX为奇数,需要加1even:shr ax,1;AXAX2SHL乘法9.显示BX最高位将两数之和的最高进位放在AL中,两数之和的其它位按从高到低顺序依次放在SI、BX、CX、DX中。 d segmentD1DQ9900feaa78563412H D2DQ7234567890abbdH dends。 lea di,D1mov dx,word ptrdimov cx,word ptrdi+2mov bx,word ptrdi+4mov si,word ptrdi+6lea di,D2add dx,word ptrdiadc cx,word ptrdi+2adc bx,word ptrdi+4adc si,word ptrdi+6mov al,0adc al,0mov dl,30H;DL0shl bx,1;BX最高位移入CF jnctwo;CF0,最高位为0,转移mov dl,31H;CF1,最高位为1,DL1two:mov ah,2int21h;显示10.比较大小1x011.统计AX中“1”的个数,将结果送入BH中;mov ax,0f0fh12.将以BUFFER为首地址的字节单元中的带符号数按正数和负数分别存储。 buffer db1,-1,-2,3,-119mov bx,0y=0x=0-1x0data segmentx dw-2y dw?data endscode segmentassume cs:code,ds:data start:mov ax,data movds,ax cmpx,0jge binmov y,-1jmp nextbin:jz equlmov y,1jmp nextequl:mov y,0next:movah,4ch int21h codeends endstart mov cx,16xor bx,bx agn:rol ax,1jnc nextinc bx;计数next:dexjnz agncount equ$-buffer plusdb count dup(?)nega dbcountdup(?)mov si,0mov di,0movcx,count agn:mov al,bufferbxcmp al,0jl nmov plussi,al incsi jmpnext nmov negadi,al incdi next:inc bxloop agn13.求出以BUFFER为首地址的字单元中的无符号数的最大值和最小值分别存储在MAX和MIN。 .model smallagn:cmp ax,bxjae mn第6章1.保护现场和恢复现场是指保护和恢复CPU内部的通用寄存器。 2.多数组求和调用子程序堆栈的装载.model small.data bufferdw1,5,9,6,3count equ($-buffer)/2max dw?min dw?.code.startup leabx,buffer mov ax,bxmov dx,ax add bx,2movcx,count-1mov ax,bxJMP NEXTmn:cmp dx,bxjbe nextmov dx,bxnext:addbx,2loop agnmovmax,ax movmin,dx.exit end.data count

温馨提示

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

评论

0/150

提交评论