DATA SEGMENT
x1 db 1,2,3,4,5,6,7,8,9
x2 db 4,5,2,6,9,5,3,1,0
datasource db 4 dup(?),'$'
scode db 4 dup(?),'$'
PRINT1 DB 'DATASOURCE IS','$'
PRINT2 DB 'THE SCODE IS','$'
count db 4
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV SI,0
MOV AL,count
cbw ;将字扩展为双字长,即把AX寄存器的符号位扩展到DX中
MOV CX,ax
NEXT:
MOV AH,01H
INT 21H
MOV DATASOURCE[SI],AL
INC SI
LOOP NEXT
MOV AL,count
cbw
MOV CX,ax
MOV SI,0
AGAIN:
MOV AL,DATASOURCE[SI]
CBW
SUB AX,30H
MOV DI,AX
SUB DI,1
MOV AL,x2[DI]
ADD AL,30H
MOV SCODE[SI],AL
INC SI
LOOP AGAIN
MOV DX,OFFSET PRINT1
MOV AH,09H
INT 21H
MOV DL,0aH
MOV AH,02H
INT 21H
MOV DX,OFFSET DATASOURCE
MOV AH,09H
INT 21H
MOV DL,0aH
MOV AH,02H
INT 21H
MOV DX,OFFSET PRINT2
MOV AH,09H
INT 21H
MOV DL,0aH
MOV AH,02H
INT 21H
MOV DX,OFFSET SCODE
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
- [lk524849699] 哦 谢谢,现在我知道了 10/24 18:10
- [mess] 可以用debug验证。 上面的程序,注意段地址是1. 10/24 00:31
- [mess] 1024是字节数。16位即16bit=2Byte 10/24 00:30
- [lk524849699] 希望大家指出错误,加深自己的印象. 10/23 12:44
- [lk524849699] 8086一次只能读取16位二进制数,1024个不得是64次么 10/23 12:29
- [wuyoudaozhu] 第7题有问题 10/21 22:59
- [tolearn] 我打酱油的…… 10/20 20:02
- [lk524849699] 学习是漫长的过程,要耐得住寂寞! 10/21 16:56
- [lk524849699] 自己还需要多加努力,一切都还有希望!努力才有结果,即便现在很多不懂,不会放弃的! 10/21 16:56
- [lk524849699] 还是看书不够仔细! 10/17 14:39
- [lk524849699] 哎呀!在一个坑中跳下了几次啦,真是失败啊 10/17 14:38
- [tolearn] 那有你说的那么夸张! 10/15 22:33