南邮汇编语言复习(微机原理与接口技术期中考试)CH4

第四章 汇编语言程序设计

这章就是写写代码什么的了

 

一、汇编语言程序结构

.486                    ;处理器选择伪指令
 DATA SEGMENT USE16     ;段定义伪指令,定义数据段 
 ...
 DATA ENDS

 CODE SEGMENT USE16      ;段定义伪指令,定义代码段
   ASSUME CS:CODE,DS:DATA;段约定伪指令
BEGIN:
   MOV AX,DATA
   MOV DS,AX             ;DS初始化

   ...
   MOV AH,4CH            ;返回DOS
   INT 21H
CODE ENDS
END BEGIN                ;汇编结束伪指令

1.处理器选择伪指令

就.486   .386嗯嗯,至少要用.386

2.段定义伪指令SEGMENT    ENDS为定界语句)

定位参数、链接参数、‘分类名’ 只在模块化程序中需要考虑。

对于我们学习的单一模块的程序,当需要定义堆栈段时,链接属性STACK,分类名‘STACK'

段名:通常用STACK作为堆栈段的段名,DATA作为数据段的段名,CODE作为代码段的段名

3.段约定伪指令

ASSUME指令,要求放在代码段之中

通知汇编程序,CODE是代码段,对代码段寻址约定使用DS寄存器

对数据段寻址约定使用DS寄存器

4.汇编结束伪指令

END 程序启动指令标号

汇编程序对END之后额语句将不再进行任何处理。DOS装载程序的可执行文件是,自动把标号所在段的段基址赋给CS,把标号所在单元的偏移地址赋给IP

5.DOS的返回

程序完成预定任务之后,必须返回DOS

MOV AH,4CH

INT 21H

 

二、汇编源程序的编程格式

(1)exe文件

exe文件允许使用多个逻辑段,每个逻辑段不超过64KB,适合编写大型程序。(照应实模式的特点)

(2)com文件

com文件只允许使用一个逻辑段,即代码段。程序所使用的数据,可以集中设置在代码段的开始或末尾。需要使用ORG定位伪指令将程序的启动指令存放在代码段偏移地址为100H的单元。

ORG指令用于通知汇编程序,将下一条指令或数据存放在表达式给出的段内其实偏移地址。

DATA SEGMENT AT 0040H
     ORG 0017H
KEYFLAG DB ?
DATA ENDS

定义了KEYFLAG变量,存放在段基址为40H,偏移地址为0017H的内存单元中。

.586
CODE SEGMENT USE16
     ASSUME CS:CODE
     ORG 100H        ;启动指令BEG存放在代码段偏移地址为100H
BEG:
     JUMP START
     SUM DB ?        ;变量集中设置在代码段的开始或末尾
START:
     MOV AL,46H
     ADD AL,52H
     MOV SUM,AL
     MOV AH,4CH
     INT 21H
     
     CODE ENDS
     END  BEG

三、DOS功能调用

1、调用模式:

MOV  AH,功能号

如果有入口参数,设置入口参数

INT 21H

如果有出口参数,分析出口情况

2、功能号

只能看着背呗。

先说入口、出口参数

入口DL、DX出口AL(入口DD出口A)

字符串都是DX

然后开始自己编顺口溜:

 

1读字符2显示;9显字串输入A;(09H是显示字符串,0AH键盘输入字符串,从BUF+2单元开始存放)

7、8全都不回显,前否后是ctrl_c;(前面的7不响应ctrl_C,后面的8响应0)

4CH回DOS,int 21作终结。(返回DOS的操作系统)

 

emmm,还是很押韵的。编着编着,就记下来了。。。

这里对0AH功能号,要重点掌握。

 

四、BIOS功能调用

键盘16屏幕10

键盘00读字符,

键盘01查缓冲。(Z=0有输入)

屏幕00设屏显,

0E、AL字符显(如果是DOS的21H,入口参数就是DL)

13显示字符串。

五、程序设计

1、子程序程序设计

子程序定界PROC  ENDP 

CALL指令调用   RET返回

2、宏指令程序设计

宏指令定界  MACRO   ENDM

 

然后,修行靠个人叭。。。剩下的就是编写程序。

我也要开始练程序了,窒息。

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值