8089汇编 源程序
8089汇编 源程序
汇编程序:包含汇编指令和伪指令的文本。
汇编语言由汇编指令和伪指令构成,想要组合成源程序进行编译就需要这么做。
汇编指令
- 对应有机器码的指令,可以被编译为机器指令,最终被CPU执行
伪指令
- 没有对应的机器码的指令,最终不被CPU所执行。
- 指导编译器将汇编语言转换为机器码。
源程序说明
一、程序案例
assume cs:codesg codesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax,4c00h int 21h codesg ends end
;注释:”;“分号 ;设置创建的段与寄存器关联 cs:code,ds:data,ss:stack assume cs:code,ds:data,ss:stack ;设置段 data data segment dw 0123H,0456H,0789H,0abcH,0defH ;结束段 data data ends ;设置段 stack stack segment dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;结束段 stack stack ends ;设置段 code code segment mov ax,stack mov ss,ax mov sp,20h ;设置栈段 mov ax,data mov ds,ax ;设置数据段 mov bx,0 mov cx,8 s: push [bx] add bx,2 loop s .... ;结束段 code code ends ;结束程序 end 源程序 说明
二、代码解析
1、含义
段定义
- 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。
- 一个有意义的汇编程序中至少要有一个段,这个段用来存放代码。
- 定义程序中的段:每个段都需要有段名。
段名 segment ——段的开始 .... 段名 ends ——段的结束
end (不是ends)
- 汇编程序的结束标记。若程序结尾处不加end,编译器在编译程序时,无法知道程序在何处结束。
assume(假设)
- 含义是假设某一段寄存器和程序中的某一个用 segment … ends 定义的段相关联——assumecs:codesg指CS寄存器与codesg关联,将定义的codesg当作程序的代码段使用。
2、说明
3、源程序经编译连接后变为机器码
源程序设计
一、案例:编程求2的3次方
; ① 定义一个段 abc segment abc ends ; ② 实现处理任务 abc segment mov ax,2 add ax,ax add ax,ax abc ends ; ③ 指出程序在何结束 abc segment mov ax,2 add ax,ax add ax,ax abc ends end ; ④ 段与段寄存器关联 assume cs:abc abc segment mov ax,2 add ax,ax add ax,ax abc ends end ; ⑤ 加上程序返回的代码 assume cs:abc abc segment mov ax,2 add ax,ax add ax,ax mov ax,4c00h int 21h abc ends end
二、正规程序样式