- 1、本文档共121页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章_编写简单汇编程序
主要内容;2.1 常量、变量、标号、表达式;硬指令和伪指令;常量;常量;变量;标号;运算符和表达式 ;运算符和表达式 ;运算符和表达式 ;运算符和表达式;2.2 常量和变量的定义;常量的定义;符号定义
DosWriteChar equ 2
CarriageReturn = 13
CallDOS equ int 21h
符号应用(左边程序段等价右侧的符号形式)
mov ah,2 ;mov ah,DosWriteChar
mov dl,13 ;mov dl,CarriageReturn
int 21h ;CallDOS;变量定义;DUP伪操作符;变量定义伪指令助记符;定义字节单元伪指令DB;定义字单元伪指令DW;定义双字单元伪指令DD;DQ与DT伪指令;例:数据定义综合应用;属性运算;; .date
array db 45,45h
.code
mov ax,seg array
mov ds,ax
mov bx,offset array
;等价于 lea bx,array
mov ax,es:[2000h];修改属性的运算符和伪指令;例:属性修改; .model small
.stack
.data
v_byte equ this byte
v_word dw 3332h,3735h
target dw 5 dup(20h)
crlf db 0dh,0ah,$
flag db 0
n_point dw offset s_label ;取得标号s_label的偏移地址
.code
.startup
mov al,byte ptr v_word
dec al
mov v_byte,al
n_label: cmp flag,1
jz s_label ;flag单元为1转移
inc flag
jmp short n_label ;进行短转移;s_label: cmp flag,2
jz next ;flag单元为2转移
inc flag
jmp n_point;段内的存储器间接寻址,转移到s_label标号处
next: mov ax,type v_word ;汇编结果为mov ax,2
mov cx,length target ;汇编结果为mov cx,5
mov si,offset target
w_again: mov [si],ax ;对字单元操作
inc si ;SI指针加2
inc si
loop w_again ;循环
mov cx,size target ;汇编结果为 mov cx,0ah
mov al,?
mov di,offset target
b_again: mov [di],al ;对字节单元操作
inc di ;DI指针加1
loop b_again ;循环
mov dx,offset v_word;显示结果:1357??????????
mov ah,9
int 21h
.exit 0
end;2.3 数据寻址方式; 立即寻址;【例】 ; 寄存器寻址;【例】 ;有效地址;1 直接寻址;【例】 ;2 寄存器间接寻址;执行指令:MOV AX ,[BP]
执行后:(AX)=?,(BP)=?,(SS)=?,(20030H)=?
图形表示如下:
;应用; 1 寄存器相对寻址;【例】 ;应用;2 基址加变址寻址;【例】;1 相对基址加变址寻址;【例】;3 比例变址寻址(386以上的机型) ;【例】;4 基址比例变址寻址;【例】;2 相对基址比例变址寻址;【例】;跨段问题;【例】跨段前缀示例。 ;小结:;2.4 基本指令;通用数据传送指令;传送指令MOV;传送指令MOV;数据交换指令XCHG;查表转换指令 XLA;地址传送指令;传送偏移地址指令 LEA;传送偏移地址及数据段首址指令LDS; 传送偏移地址及附加数据段指令LES;算术运算类指令;加法运算;加1指令 INC;加指令ADD;语句格式:ADC OPD,OPS
影响的标志:AF、ZF、SF、PF、OF、CF
功能:将目的操作数加源操作数再加低位进位,结果送目的地址。即(OPD)+(OPS)+CF → OPD。
源操作数可是立即数、寄存器、存储器;目的操作数可是寄存器、存储器
ADC指令主要与ADD配合,实现多精度加法运算
【例】无符号双字加法运算。
MOV AX,4654H ;(AX)=4654H
ADD AX,0F0F0H ;(AX)=3744H,CF=1
MOV DX,0434H ;(DX)=0434H
ADC DX,0F0F0H ;(DX)=0F
文档评论(0)