求汇编完整程序
答案: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
;---------------------------
本程序可满足题目要求。
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯