编程实现: S=1+2+3+……+100  ,要求计算后的结果存放在变量S里。
DATA SEGMENT


    S DW (?)


DATA ENDS


CODE SEGMENT


     ASSUME CS:CODE,DS:DATA


START:


      MOV AX,DATA


      MOV DS,AX


      MOV CX,100


      MOV AX,0H


      MOV BX,1H


LOOP1:


      ADD AX,BX


      INC BX


      LOOPLOOP1          


      MOV S,AX


      MOV AH,4CH


      INT 21H


 CODE ENDS


      END START


判断方程AX2+BX+C=0是否有实根。若有实根,则将字节变量TAG置1,否则置0。假设A、B、C均为字节变量,数据范围为-128~127。


DATAS SEGMENT


    a dw 2


    b dw 8


    d dw 5


    tag db ?;此处输入数据段代码  


DATAS ENDS




CODES SEGMENT


    ASSUME CS:CODES,DS:DATAS,SS:STACKS


START:


    MOV AX,DATAS


    MOV DS,AX 


    mov cx,b


    mov ax,0


  l1: add ax,b


    loop l1


    mov cx,d


    mov dx,0


  l2:add dx,a


  loop l2


  mov cx,4


  add bx,dx


  cmp ax,bx


  jge exist


  mov tag,0


  jmp done


  exist: mov tag,1  ;此处输入代码段代码


    done:


    MOV AH,4CH


    INT 21H


CODES ENDS


END START


已知有两个双字长度的数DATA1和DATA2,要求用8086汇编语言编程实现两数相加,并将结果存放在result中,采用高地址优先存储结果(如1234H,5678H表示56781234H)。程序的数据段部分已给出,要求补充完整程序,实现上述要求的功能。
data segment
data ends
code segment
 assume ds:data,cs:code
   begin:
 mov ax,data
 mov ds,ax
 mov cs,ax
mov bh,1
mov ch,3
mov bl,2
mov cl,4
add cx,bx
mov dl,ch
add dl,30H
mov ah,02
int 21H
mov dl,cl
add dl,30H
mov ah,02
int 21H 
mov dl,‘h’
mov ah,02
int 21H 
mov ah,01
int 21h
 mov ah,4ch
 int 21h
code ends
 end begin