将实验7的数据显示在屏幕上:
分析:先将 data 中的数据转换成字符串后保存在 table 中再显示,按行显示
遇到的问题:loop循环中的程序代码太长,loop对IP的修改范围(-128~127Bytes),导致编译无法通过,所以将loop换成以下语句
m_loop:
;some code
...
dec cx
jcxz b_loop
jmp m_loop
b_loop:
mov ax, 4c00H
int 21H
具体代码:
;《汇编语言》课程设计1
;按行显示,共21行,循环21次,cx循环计数
;每行按 "年份"、"总收入"、"雇员数"、"平均收入" 顺序显示
;将每一行的数据转换成字符串保存到table,再显示
assume cs:code, ds:data, ss:stack
data segment
;21个年份,84个byte
db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983'
db '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992'
db '1993', '1994', '1995'
;21年总收入,84个byte
dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
dd 345980, 590827, 803530, 1183000, 1843000, 2759000, 3753000, 4649000, 5937000
;21年雇员人数,42个byte
dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442, 2258, 2793, 4037, 5635, 8226
dw 11542, 14430, 15257, 17800
;2