start datal segment mov ax, datagroup const dw 100 mov ds. ax datal ends mov ax, const l data2 segment mov varl. ax varl dw data2 ends mov bx, offset var 1 (bx)=0 mov bx, offset datal (bx)=2 datagroup group datal, data2 moy bx, offset data2 ; (bx) code segment assume ds: data2 mov ax, data2 assume cs: code, ds: datagroup mov ds,ax mov ax, var l mov bx, offset var 1 (bx)=0 mov ax, 4c00h int 21 h code ends end start
16 data1 segment const1 dw 100 data1 ends data2 segment var1 dw ? data2 ends datagroup group data1, data2 code segment assume cs:code, ds:datagroup start: mov ax, datagroup mov ds, ax mov ax, const1 mov var1, ax mov bx, offset var1 mov bx, offset data1 mov bx, offset data2 assume ds:data2 mov ax, data2 mov ds, ax mov ax, var1 mov bx, offset var1 mov ax, 4c00h int 21h code ends end start ; (bx) = 0 ; (bx) = 2 ; (bx) = 2 ; (bx) = 0
程序开始和结束伪操作: TITLE text NAME module name END [ label I STARTUP EXIT return value I 17
17 TITLE text NAME module_name END [ label ] . STARTUP . EXIT [ return_value ] 程序开始和结束伪操作:
数据定义及存储器分配伪操作: [变量]助记符操作数[,操作数,][;注释] 助记符: DB DW DD DF DQ DT DATA_BYTE→0AH 04H 10H DATA_WoRD→64H 00H 00H DATA BYTE DB 10, 4, 10H, 01H DATA_WORD DW 100, 100H, -5,? FBH FFH
18 数据定义及存储器分配伪操作: [变量] 助记符 操作数 [ , 操作数 , … ] [ ; 注释 ] 助记符:DB DW DD DF DQ DT DATA_BYTE DB 10, 4, 10H, ? DATA_WORD DW 100, 100H, -5, ? - 0AH 04H 10H - 64H 00H 00H 01H FBH FFH - DATA_BYTE → DATA_WORD →
ARRAY DB“ HELLO ARRAY 48H 45H DB AB 4CH DW“AB 4CH 4FH 41H 42H 42H 41H PAR1DW100,200 PAR2DW300,400 ADDR TABLE DW PAR1, PAR2 VAR DB 100 DUP ( ? DB2DUP(0,2DUP(1,2),3)
19 ARRAY DB ‘HELLO’ DB ‘AB’ DW ‘AB’ 48H 45H 4CH 4CH 4FH 41H 42H 42H 41H ARRAY → PAR1 DW 100,200 PAR2 DW 300,400 ADDR_TABLE DW PAR1,PAR2 VAR DB 100 DUP (?) DB 2 DUP (0,2 DUP(1,2),3)