永发信息网

求汇编完整程序

答案:2  悬赏:60  手机版
解决时间 2021-12-20 00:45
  • 提问者网友:你挡着我发光了
  • 2021-12-19 04:35
1对两个8字节无符号数求和,这两个数分别用变量D1及D2表示。将两数之和的最高位进位放在AL中,两数之和的其他位按从高到低顺序依次放在SI,BX,CX,DX中
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-12-19 05:14
;---------------------------
ASSUME  CS:CC, DS:QW
;---------------------------
QW  SEGMENT
    D1  DB  13, 10, 45, 56, 78, 90, 18
    D2  DB  33, 30, 45, 26, 18, 30, 28
QW  ENDS
;---------------------------
CC  SEGMENT
START:
    MOV   AX, QW
    MOV   DS, AX

    MOV   DI, 0

    MOV   DL, D1[DI]
    ADD   DL, D2[DI]
    MOV   DH, D1[DI + 1]
    ADC   DH, D2[DI + 1]

    ADD   DI, 2

    MOV   CL, D1[DI]
    ADC   CL, D2[DI]
    MOV   CH, D1[DI + 1]
    ADC   CH, D2[DI + 1]

    ADD   DI, 2

    MOV   BL, D1[DI]
    ADC   BL, D2[DI]
    MOV   BH, D1[DI + 1]
    ADC   BH, D2[DI + 1]

    ADD   DI, 2

    MOV   AL, D1[DI]
    ADC   AL, D2[DI]
    MOV   AH, D1[DI + 1]
    ADC   AH, D2[DI + 1]

    MOV   SI, AX

    MOV   AL, 0
    ADC   AL, 0

EXIT:
    MOV   AH, 4CH
    INT   21H       ;返回DOS

;---------------------------
CC  ENDS
    END  START
;---------------------------

本程序可满足题目要求。
全部回答
  • 1楼网友:长青诗
  • 2021-12-19 05:29
呵呵,楼主我们学院的,正好我们做这个实验,给你个程序试试 ,后面修改了下 stack segment db 100 dup(?) stack ends code segment assume cs:code,ss:stack start: mov dx,3fbh mov al,80h out dx,al ;线路控制寄存器(3fbh) 的最高位置1 mov dx,3f8h mov al,0c0h out dx,al mov dx,3f9h mov al,00h out dx,al ;设波特率为600 mov dx,3fbh mov al,1bh out dx,al;设置数据字节格式,8位数据位,1位停止位,偶校验 mov dx,3fch mov al,03h out dx,al;设置modem控制方式 mov dx,3f9h mov al,00h out dx,al;设置通信方式为查询方式 rpeat: mov dx, 3fdh in al, dx test al, 01h jnz receiv test al, 20h jz rpeat mov ah, 01h int 16h;键盘io调用,读键盘缓冲区字符 jz rpeat;无字符输入跳转 mov ah, 00h;从键盘读字符 int 16h cmp al,27;是结束符"esc"吗 jz re mov dx, 3f8h ;发送字符 out dx, al cmp al,13;是回车吗 jz hh push ax push bx mov bl, 00h;bl表示显示字符前景色 mov ah, 0eh int 10h;功能调用,显示字符,al=字符 pop bx pop ax jmp rpeat receiv: mov dx, 3f8h ;接收字符 in al, dx cmp al,13 jz hh push ax push bx mov bl, 00h mov ah, 0eh int 10h pop bx pop ax jmp rpeat hh: mov dl,13 mov ah,2 int 21h mov dl,10 mov ah,2 int 21h jmp rpeat re: mov ax,4c00h int 21h code ends end start
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯