主题:简单的程序(急...)
boss19860211
[专家分:90] 发布于 2007-03-16 12:05:00
大家好,本人不懂汇编语言,明天就要参加考试,其中6分的汇编题不会做,想请高手帮帮我,不胜感激,谢谢...
题目一:设TAB1的段地址是1000H,偏移地址是0010H,则(AX)=___________
TAB1 DW 1,2,3,4
CONT EQU 5
TAB2 DB 'ABCDEF'
MOV BX,OFFSET TAB1
ADD BX,CONT
MOV AX,WORD PTR[BX]
题目二:
设(AX)=8,(BX)=3,(CX)=2,下列程序段执行后,(AX)=____________
LOP: ROR BX,CL
ADC AX,BX
LOOP LOP
谢谢大家,最好告诉我每一行代码的含义,真的谢谢大家了!!!
回复列表 (共8个回复)
沙发
ccpp [专家分:9360] 发布于 2007-03-16 19:13:00
题目一:设TAB1的段地址是1000H,偏移地址是0010H,则(AX)=___________
TAB1 DW 1,2,3,4
;定义8个字节,一个数字占2占字节
;低位放在低位地址
;即 01 00,02 00,03 00,04 00
位 0 1 2 3 4 5 6 7
CONT EQU 5
TAB2 DB 'ABCDEF'
MOV BX,OFFSET TAB1 ;取这8个字节的首地址
ADD BX,CONT ;首地址+5
MOV AX,WORD PTR[BX] ;就是00,04
;但低位放在al,高位在ah
所以ax =0400h
题目二:
设(AX)=8,(BX)=3,(CX)=2,下列程序段执行后,(AX)=____________
LOP: ROR BX,CL
;第一次循环右移cx=2位,00000000 00000011 =>11000000 00000000
;第2次循环右移cx=1位, 11000000 00000000 =>01100000 00000000
;ror影响 cf位,cf保存最后的移出位,第一次的最后移出位是 1
第二次的最后移出位是 0,带进位相加不用加1
ADC AX,BX ;带进位相加
;对于adc,如果cf位1,则结果加上cf,这里ax还要加1
LOOP LOP ;循环两次
;最后的结果溢出 ax = 2009h
板凳
木之欠 [专家分:50] 发布于 2007-03-21 15:12:00
还临时抱佛脚了,我都好久没来这儿逛 了!
3 楼
thh123 [专家分:10] 发布于 2007-03-23 12:02:00
强
4 楼
boss19860211 [专家分:90] 发布于 2007-04-06 20:24:00
[quote]还临时抱佛脚了,我都好久没来这儿逛 了![/quote]
可惜考试时这4分还是都错了啊...
5 楼
木之欠 [专家分:50] 发布于 2007-04-11 11:55:00
[quote][quote]还临时抱佛脚了,我都好久没来这儿逛 了![/quote]
可惜考试时这4分还是都错了啊...
[/quote]
错了不要紧的,呵呵~~~[em2]
6 楼
boss19860211 [专家分:90] 发布于 2007-04-20 21:21:00
[quote][quote][quote]还临时抱佛脚了,我都好久没来这儿逛 了![/quote]
可惜考试时这4分还是都错了啊...
[/quote]
错了不要紧的,呵呵~~~[em2][/quote]
为什么说错了不要紧的啊?呵呵...
7 楼
boss19860211 [专家分:90] 发布于 2007-04-23 00:21:00
哈哈,我3级过了.开心啊...给大家都加分,嘿嘿...
8 楼
ccpp [专家分:9360] 发布于 2007-04-24 20:32:00
恭喜!
我来回复