微机原理与接口课件6.ppt
文本预览下载声明
第3章 汇编语言程序设计(二) 格式# 伪指令# ╳ DOS/BIOS调用 (简单了解) 重点:数据结构表示 变量、指针 程序结构 程序流控制(条件、分支、循环) 程序设计方法 data segment num1 dw 8000h, 8000h num2 dw 8008h,8000h mut dw 4 dup (0) data ends stack segment stack ‘stack’ db 100 dup (‘s’) stack ends code segment para ‘code’ assume cs:code, ds:data, ss:stack sta proc far push ds xor ax,ax push ax mov ax,data Mov ds,ax Lea bx,num1 //mov bx,offset num1 Mov ax,[bx] Mov si,[bx+4] Mov di,[bx+6] Mul si Mov [bx+8],ax Mov [bx+10],dx Mov ax,[bx+2] Mul si Add [bx+10],ax Adc [bx+12],dx Mov ax,[bx] mul di Add [bx+10],ax Adc [bx+12],dx Adc word ptr [bx+14],0 Mov,[bx+2] Mul di Add [bx+12],ax Adc [bx+14],dx Ret Sta endp Code ends End sta 例 符号函数 y=1 当x0 y=0 当x=0 y=-1 当x0 循环结构 求一个16位无符号数的整数平方根。 选用牛顿迭代公式 f(x)=0 X(n)=X(n-1)-f(x(n-1) ) /f’(x(n-1)) = X(n-1) –(x(n-1) 2-k) /(2x(n-1)) =(X(n-1) +k/x(n-1))/2 排序程序 data segment num db 3 nj dw ? data ends stack segment stack stack db 200 dup (s) stack ends code segment para code assume cs:code,ds:data,ss:stack sta proc far push ds xor ax,ax push ax mov ax,data mov ds,ax push cx mov ah,0 mov al,num call factor x1: mov nj,ax pop cx ret sta endp factor proc near push ax sub ax,1 jne fcon pop ax jmp return fcon: call factor x2: pop cx mul cx return: ret factor endp code ends end sta 汇编语言程序设计—结构 过程(子程序,函数, 方法)参数传递 ①寄存器传递;②内存单元(全局)传递; 速度快,但结构差,难维护 MOV SI, OFFSET SBuf_head MOV DI, OFFSET Dbuf_head MOV CX,COUNT CALL BLKCHEK ③堆栈传递---POP取/BP取(子
显示全部