第3章 8086汇编语言程序设计.ppt

第3章 8086汇编语言程序设计

* 寄存器寻址 * 寄存器相对寻址 * * * * ROL:循环左移 小循环 * SAL:算术左移,左端填0,d7进cy 也可SHL、ROL、ROR、RCL:带进位循环左移 * * * * * * * * * (84H)=IP (86H)=CS * * * * * * * * * * * * * * * * MOV AH,4CH INT 21H:带返回码结束, AL=返回码 * * * * * * * * ‘A’:41H ‘Z’:5AH DH计数字个数,DL计字母个数 * * * * 寄存器间接寻址 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * LODSB:串装入指令。AL-((DS):(SI)),SI-(SI)+-1 STOSB: 串存送指令。 ((ES):(DI)) -AL, EI-(EI)+-1 * * * 一、顺序结构 例 内存中TABLE开始存放0-9的平方值,通过人机对话,当任给定一个数X (0-9),查得X的平方值,放在AL中。 data segment TABLE DB 0,1,4,9,16,25,36,49,64,81 BUF DB Please input one number (0-9):,0DH,0AH,$ ends stack segment dw 128 dup(0) ends code segment start: mov ax, data mov ds, ax mov es, ax MOV DX,OFFSET BUF ;提示输入一个数 MOV AH,9 INT 21H MOV AH,1 ;键入数,送入AL INT 21H AND AL,0FH MOV BX,OFFSET TABLE MOV AH,0 ADD BX,AX MOV AL,[BX] ;保存查表结果到AL mov ax, 4c00h ; exit to operating system. int 21h ends end start * 二、分支结构 * * * 两数比较 CMP 比较判断 串比较 CMPS 分支的实现步骤 串搜索 SCAS 转移 无条件转移 条件转移 * 1 简单分支结构 例 存储器中有一串字符串首址为BUF,字符串长度N小于256,要求分别计算出其中数字‘0’~‘9’,字母‘A’~‘Z’和其它字符的个数,并分别将它们的个数存放到此字符串的下面三个单元中。 DH DH+1 DL DL+1 DH M DL M N-DH-DL M 41H? 30H? 5AH? 39H? CH-1=0? Y Y Y Y Y N N N N N * data segment BUF DB 7 DB 01H,38H,47H,90H,33H,09H,76H NUM DB 3 DUP(?) ends code segment start: mov ax, data mov ds, ax mov es, ax MOV CH,BUF ;数组个数→CH MOV BX,1 MOV DX,0 ;DH数字数,DL字母数 LP: MOV AH,BUF[BX] CMP AH,30H JL NEXT ;小于’0’转 CMP AH,39H JG ABC ;大于’9’转 INC DH ;数字个数加1 JMP NEXT ABC: CMP AH,41H JL NEXT ;小于’A’转 CMP AH,5AH JG NEXT

文档评论(0)

1亿VIP精品文档

相关文档