- 3
- 0
- 约4.74千字
- 约 57页
- 2017-08-12 发布于河南
- 举报
微机原理与应用第四章课件
Nanjing University of Science Technology;第3章 汇编语言程序设计;汇 编 语 言;STACK SEGMENT
DB 100 DUP( ? )
STACK ENDS
DATA SEGMENT
SUR DB ?
DIS DB ?
SQTAB DB 0,1,4,9,16,25,36,49,64,81
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA BX,SQTAB;取平方表基地址
MOV AH,0
MOV AL,SUR ;AL=X
ADD BX,AX ;计算地址偏移
MOV AL,[BX] ;取出X的平方值
MOV DIS,AL
CODE ENDS
END BEGIN;汇编语言的语句格式 ;汇编语言的基本元素 ;常量、变量和标号 ;常量、变量和标号 ;数据定义伪操作指令 ;数据定义伪操作指令 ;数据定义伪操作指令 ;变量的属性 ;标号的属性 ;汇编语言的运算符 ;汇编语言的运算符;汇编语言的运算符;汇编语言的运算符;汇编语言的段定义 ;汇编语言的段定义 ;汇编语言的过程定义 ;设定段寄存器伪指令ASSUME ;汇编语言源程序结构;标准程序前奏;标准程序前奏;结束用户程序返回DOS的方法 ;ORG伪指令 ;汇编结束伪指令语句END ;汇编语言源程序结构;例题详解 ;执行以下程序段后,AX的内容为:
ORG 0000H
TABLE DW 12H,34H,56H,$+1018,78H,90H
COUNT EQU 3
LEA BX,TABLE
MOV DX,4[BX]
MOV AX,[BX+2*COUNT]
SUB AX,DX;执行以下程序段后,CL和AX的内容各为:
STR1 DW ‘AB’
STR2 DB 16 DUP(?)
CNT EQU $-STR1
MOV CX,CNT
MOV AX,STR1
HLT;求下列数据段中每个符号或变量所对应的值:
DATA SEGMENT
ORG 1000H
MAX EQU 0FFH
ONE EQU MAX MOD 10
TWO EQU ONE*4
SIZE EQU((TWO LT 20H) AND 10H)+10H
BUF DB SIZE*2 DUP(?)
COUNT EQU $-BUF
DATA ENDS;汇编程序设计 ;顺序结构程序设计;DATA SEGMENT
SUR DB 2
DIS DB ?
SQTAB DB 0,1,4,9,16,25,36,49,64,81
DATA ENDS;CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA BX,SQTAB ; 取平方表基地址
MOV AH,0
MOV AL,SUR ; AL=X
ADD BX,AX ; 计算地址偏移
MOV AL,[BX] ; 取出X的平方值
MOV DIS,AL
RET
BEGIN ENDP
CODE ENDS
END BEGIN;为使程序精练,可采用查表指令XLAT,代码段如下:
BEGIN: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA BX,SQTAB
MOV AL,SUR ;AL=X
XLAT SQTAB
MOV DIS,AL;分支结构程序设计 ;分支结构程序设计实例 ;根据
原创力文档

文档评论(0)